代码之家  ›  专栏  ›  技术社区  ›  AdamC

丢失的套接字消息

  •  4
  • AdamC  · 技术社区  · 17 年前

    我做套接字编程已经很多年了,但是我从来没有错过过使用TCP的消息——直到现在。我在本地主机上有一个java服务器和一个C语言的客户机。他们以字符串的形式来回发送短消息,其间有一些延迟。我有一个特殊的例子,消息从未到达客户端。它是可复制的,但奇怪的是依赖于机器。

    换句话说,如果你有一个连接的套接字,一边写,一边读,中间会发生什么导致这样的事情呢?

    另一个细节——我在环回接口上使用了tcpdump,可以看到丢失的消息。

    2 回复  |  直到 17 年前
        1
  •  4
  •   Jordan Stewart    17 年前

    我以前在SMTP事务中见过这种情况。那台机器上有病毒扫描器吗?如果是这样的话,试着关掉它,看看这是否会有所不同。

    Wireshark 所以你可以看看到底发生了什么。

        2
  •  1
  •   AdamC    17 年前

    最后,在嗅了一些之后,我发现了问题。两条消息在读取之前被发送(有时,但很少…),因此它们都被读取,但只有第一条被处理。这就是为什么第二条信息似乎从未到达。它被埋在接收缓冲区中。

    推荐文章