UDP客户端连续发送abc和def两个TCP包后, 服务器分几次recv()接收数据?该怎么处理

UDP客户端连续发送abc和def两个TCP包后, 服务器分几次recv()接收数据?
假如UDP服务器已启动, 在开始并没有用recvfrom接收数据. 然后:

1. 客户端用sendto()连续发送abc和def两个TCP包.
2. 客户端发送完毕后, 服务器才开始用recvfrom接收数据.

请问服务器需要调用几次recvfrom()?

如果采用TCP协议呢, 客户端连续发送abc和def两个TCP包后, 服务器分几次recv()接收数据?

------解决方案--------------------
UDP不需处理粘包
TCP需要处理粘包

前提是sendto或send未超时
UDP需调用2次recvfrom
TCP的话,要看socket的发送缓冲大小,是否使用Nagle算法,默认下,这么小的数据都会合并了,所以应该只要1次recv

------解决方案--------------------
探讨
UDP不需处理粘包
TCP需要处理粘包

前提是sendto或send未超时
UDP需调用2次recvfrom
TCP的话,要看socket的发送缓冲大小,是否使用Nagle算法,默认下,这么小的数据都会合并了,所以应该只要1次recv