【问题标题】:Are UDP packets guaranteed when sent over a port within on machine?通过机器内的端口发送 UDP 数据包是否有保证?
【发布时间】:2021-01-29 10:22:30
【问题描述】:

我知道,当两台机器通过 UDP 通信时,它们发送的数据包不能保证按顺序传送,或者根本不保证传送。

但是,我想知道的是,如果同一台机器上的两个程序通过 UDP 进行通信,考虑到不涉及网络路由(至少到我的知识)?

例如,我有一个程序 A 在我的机器上运行,每秒通过 IP 127.0.0.1 上的 UDP 向端口发送约 200 个数据包,而同一台机器上的另一个程序 B 正在监听这些数据包数据包并对其进行处理。是否保证 B 会“听到”所有 A 发送的数据包,并且总是按照 A 发送它们的顺序被听到?

【问题讨论】:

标签: sockets networking udp


【解决方案1】:

问题是 UDP 被设计为无法保证。对于UDP,它不知道连接的两端是否在同一台PC。为这种情况(包括 UDP)编写一些更具体的代码并不是一个好主意。如果你真的希望它可靠,你可以自己控制它。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-06
    • 1970-01-01
    • 2012-08-13
    相关资源
    最近更新 更多