Dear Fernando, recv() is used for sending too. Actually, it is pertaining to the Layered architecture. A lower layer RECEIVEs packet from its upper layer. Check carefully the code of recv() function and you will observe that it is first of all checking the 'direction' of the packet, if it is 'down' that it is a packet RECEIVED from its upper layer.
Hope it's clear!
