recv 和 recvfrom的区别
recv
不等待是因为使用的是非阻塞socket,换而使用阻塞socket一样需要等待。
recvfrom
同理,也可以使用非阻塞方式
recv的recvfrom是可以替换使用的
只是recvfrom多了两个参数,可以用来接收对端的地址信息,这个对于udp这种无连接的,可以很方便地进行回复。
而换过来如果在udp当中也使用recv,那么就不知道该回复给谁了,如果你不需要回复的话,也是可以使用的。
另外就是对于tcp是已经知道对端的,就没必要每次接收还多收一个地址,没有意义要取地址信息,在accept当中取得就可以加以记录了。