当服务器向客户端发送4个或更多25字节的数据包时,客户端只处理前2个数据包。我在客户端上使用事件选择,并在服务器上发送。没有错误,但只显示前2个数据包。
不看你的代码,我只能想到一个你可能忽略的问题,
也许你忽略了TCP是一个基于流的协议。如果你从客户端调用发送函数10次发送数据,那么你就没有必要在接收端调用接收函数10次。所有数据可能在1个接收或5个或8个或12个接收中检索。我的意思是,不要试图以包的形式来看待它。你必须自己做帧来识别数据包。
当你发送4个25字节的数据包时。总共是100字节的数据。在接收端,你可能会收到2个50字节的数据包,你必须通过使用一些开始和结束标记等来识别你的数据包。
您也可以获得单个100字节的数据包或10个10字节的数据包。