【问题标题】:process termination进程终止
【发布时间】:2009-12-28 07:30:12
【问题描述】:

我有 2 个进程,它们发送 UDP 消息。他们不会立即阅读消息,有时当他们阅读消息时,他们可以阅读大量消息。 我看到当其中一个进程关闭时,另一个进程仍在接收这些消息。

怎么会?挂了。

谢谢

【问题讨论】:

    标签: process network-programming udp


    【解决方案1】:

    在一个进程崩溃后,您会不断收到数据包,因为操作系统会缓冲传入的数据包。例如,请参阅UDP Buffering 上的此讨论。

    在使用未连接的 UDP 套接字时,除了发送往返保持活动数据包之外,任何一个码头都无法知道另一个码头是否已崩溃。

    【讨论】:

    • 好的。如果是 TCP,缓冲区还会存在吗?
    • 是的。但是您可能会看到 TCP 的不同行为,因为如果您的码头关闭/崩溃,操作系统将发送一个 FIN 或 RST 数据包,指示连接已关闭,并且在您使用缓冲区中的剩余数据后,您将获得 0 长度读取或读取错误.
    猜你喜欢
    • 1970-01-01
    • 2011-01-21
    • 2010-12-21
    • 2011-01-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-24
    相关资源
    最近更新 更多