网络编程如何判断数据包是不是全的??
利用tcp传输数据,
假设客户端向服务器发送1000个字节的字符串,那么如果遇到网络延迟导致前500数据先到,而后500个数据过了一会才到来,那么如何判断先来的500个字节不是全部的数据,(1000个字节只是举例,服务器不知道客户端传来多少字节)。
谢谢啦
[解决办法]
定义一个传输协议
先发一个包的长度 先读出长度 再根据长度解析 最好结尾再加个结束标志 我猜的
[解决办法]
不知道有多少前人掉在TCP Socket
send(人多)send(病少)send(财富)
recv(人多病)recv(少财富)
陷阱里面啊!
[解决办法]
收数据,循环拆包,收数据,循环拆包...............
[解决办法]
定义包头,包头中定义包体数据长度,
接收时先收包头(大小可固定),根据包体长度接收包体。
[解决办法]
由 通讯协议 来控制吧。
比如协议的报文头中,用几个长度字节来标识本包数据的长度。
如果想判断本包数据接收的是否正确,可以加校验。