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

网络编程怎么判断数据包是不是全的?

2012-04-28 
网络编程如何判断数据包是不是全的??利用tcp传输数据,假设客户端向服务器发送1000个字节的字符串,那么如果

网络编程如何判断数据包是不是全的??
利用tcp传输数据,
假设客户端向服务器发送1000个字节的字符串,那么如果遇到网络延迟导致前500数据先到,而后500个数据过了一会才到来,那么如何判断先来的500个字节不是全部的数据,(1000个字节只是举例,服务器不知道客户端传来多少字节)。
谢谢啦

[解决办法]
定义一个传输协议
先发一个包的长度 先读出长度 再根据长度解析 最好结尾再加个结束标志 我猜的
[解决办法]
不知道有多少前人掉在TCP Socket
send(人多)send(病少)send(财富)
recv(人多病)recv(少财富)
陷阱里面啊!

[解决办法]
收数据,循环拆包,收数据,循环拆包...............
[解决办法]
定义包头,包头中定义包体数据长度,
接收时先收包头(大小可固定),根据包体长度接收包体。
[解决办法]
由 通讯协议 来控制吧。

比如协议的报文头中,用几个长度字节来标识本包数据的长度。

如果想判断本包数据接收的是否正确,可以加校验。

热点排行