【问题标题】:Winsock TCP Packets sent but not reaching hostWinsock TCP 数据包已发送但未到达主机
【发布时间】:2011-04-08 23:16:04
【问题描述】:

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

【问题讨论】:

  • 您可能需要显示一些代码...
  • 您是否尝试过使用 Wireshark 捕获此流量并检查发生了什么?也许您的消息是连接或拆分的,但是在您的代码中您没有正确处理它。所有这些都将在 Wireshark 中可见。

标签: tcp client-server winsock winsock2


【解决方案1】:

不看你的代码,我只能想到一个你可能忽略的问题,

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

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

您也可以得到一个 100 字节的数据包或 10 个 10 字节的数据包。请记住这一点。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-05
    • 1970-01-01
    • 2020-01-06
    • 1970-01-01
    • 2012-09-07
    • 1970-01-01
    相关资源
    最近更新 更多