Socket异步通信遇到Socket服务端接收的数据不完整,最初自己以为是Socket在通信过程出现了数据丢失,自己找了相关质料都说Socket通信不会出现丢数据的现象. 没有办法自己做一个简单的压力测试,首先只让一个客户端去连接服务端,每10毫秒向服务端发送一次数据,频率购高了吧,服务端没有出现接收数据不完成后来逐步增加客户端,Socket服务端就出现了接收的数据不完整(只是偶尔出现,很隐蔽).找到问题发生的规律就好找原因了,自己看Socket通信框架了的代码,发现服务端只开辟了一个数据缓冲池,当旧的数据没有来的及处理时新的数据到来,覆盖了原先的数据,造成新数据覆盖旧数据,看起来像是通信中接收数据的时候出项了数据丢失.最后的解决办法是在每个客户端连接服务端的时候单独为每个客户端分配一个数据缓冲池,这种办法虽然能很好的解决一般的数据覆盖问题,但是当遇到解析Socket数据很费时间而客户端频繁发送数据的情况,个人认为不是很有效 最后希望大家参与讨论,找到最好的解决方法.
Socket异步通信遇到Socket服务端接收的数据不完整,最初自己以为是Socket在通信过