Zend certified PHP/Magento developer

Does sending packet to machine in local network broadcasts or uses router

If I have 3 machines in a local network let’s say A, B and C. Now A wants to send some data to B.

Now, A needs to know the IP and the MAC of B. For simplicity, let’s assume IP of B is known.

a) To know the MAC address of B, does A broadcast the message to each machine in the network and populate it in the ARP table or it simply talks to the router since router is the one with whom all device must have registered, so it should know?

b) Once IP and MAC of B are known, does A still send the message to each machine i.e. B and C and C simply rejects it, or it sends to router and router only forwards it to B, so C never gets it?