首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

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

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

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

热点排行