SOCKET发包顺序及接收时的问题
1使用TCP连接应该是按顺序收的吧,怎么样在发现完了通知服务器比较好呢?
2出现过这样一种情况,客户端向服务器发A数据,发完后又发B数据,服务器在接收B数据的过程中,又收到一次A数据。客户端只发送了一次,服务器为什么会收两次。虽然客户端有多个,但是我用IP和数据的内容确认了一下应该是同一个客户端的信息,并且客户端确实只发一次。怎么解释这样的事情,避免服务器处理重复数据呢?
[解决办法]
1.自己定义个协议比如用"完了"付在信息后,告诉发送结束。
2.udp会出现这种现象。
[解决办法]
1、TCP有CRC校验,如果前后包的CRC一致说明已经结束,给服务器发送消息
2、应该是服务端响应的问题吧,比如服务器在接收完报文的时候没有给客户端消息,客户端发一定时间后继续发送同一报文
[解决办法]
楼主用的UDP吧,改TCP不就行了。