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

关于socket接收TCP的数据有关问题

2012-02-28 
关于socket接收TCP的数据问题!远端终端是一个GPRS MODEM,我用windows socket作为服务端的监听,假设MODEM有

关于socket接收TCP的数据问题!
远端终端是一个GPRS MODEM,我用windows socket作为服务端的监听,
假设MODEM有10包数据,和服务端建立TCP连接后,依次将这10包数据发给服务端(TCP连接没有断)。
我的问题是,
1:TCP发送端是否会将这10包数据根据它自己的定义重新打包成N包?
2:TCP接收端是否会将重新打过包的N包数据恢复成MODEM发送的那10个包?
3:也就是说,在TCP连接不断的情况下,MODEM给服务端发送10包数据,到服务端是否会接收到大于10包的数据?

[解决办法]
其实三个问题结果就是一个10个包发送给服务器端后,会根据你发包的大小以及时间间隔不同,服务器端收到的包数和大小也不相同,SOCKET通讯过程中,如果包太大的话,那么将会分开多个包发送,这个主要跟通讯缓冲区相关,如果发送间隔很短的话,那么多个小包将有可能合成一个大包发给服务器。
[解决办法]
TCP/IP会根据缓冲区大小.发送包的大小进行重新组包,但对用户不透明,在用SOCKET发10包时,在MODEM接收到的仍然是10包,但在物理层传输时可能不是10包

热点排行