Winsock TCP数据包已发送但未到达主机

时间:2011-04-08 23:16:05

标签: tcp client-server winsock winsock2

当服务器向客户端发送4个或更多 - 25个字节的数据包时,只有前2个由客户端处理。我在客户端上使用Event select,并在服务器上发送。没有错误,但只显示前2个数据包。提前谢谢。

1 个答案:

答案 0 :(得分:3)

如果不查看您的代码,我只能想到您可能会忽略的一个问题,

也许您错过了TCP是基于流的协议的观点。如果您通过从客户端调用发送功能10次来发送数据,那么您不必在接收方呼叫接收功能10次。所有数据可以在1次接收或5次或8次或12次接收中检索。我的意思是不要试图以数据包的形式来看待它。你必须自己做框架来识别数据包。

当你发送4个25字节的数据包时。总数是100字节数据。 在接收端,您可能会得到2个50字节的数据包,您必须使用一些开始和结束标记等自己识别您的数据包......

您还可以获得100个字节的单个数据包或10个字节的10个数据包。牢记这一点。