【问题标题】:UDP multiple client receiving from same sourceUDP 多个客户端从同一源接收
【发布时间】:2013-11-20 14:01:31
【问题描述】:

我有一个问题,主机 A 上的 2 个或更多客户端尝试从主机 B 接收具有完全相同的地址和端口号。

假设我们有主机 A 并且有 2 个线程在其上运行。 A.thread_a 向 B 端口 xxxx 发送一个数据包。然后它执行 recvfrom(B, xxxx)。同时,A.thread_b 使用相同的 IP 和端口号执行相同的 recvfrom() 调用。 B,收到A.thread_a的请求后,通过sendto(A, yyyy)发送数据。谁会收到响应,A.thread_a 还是 A.thread_b?

【问题讨论】:

  • 未定义行为的网络版本:(
  • @MartinJames 一开始就不应该这样做?
  • 确实如此。如果你想多路复用来自多个线程的消息流,你应该在消息中放入某种 originator-ID 并让对端在响应中返回它。
  • @MartinJames 好的,这是有道理的。

标签: sockets udp


【解决方案1】:

如果你想多路复用来自多个线程的消息流,你应该在消息中放入某种类型的 originator-ID 并让对端在响应中返回它。 ——马丁·詹姆斯

【讨论】:

    猜你喜欢
    • 2013-03-19
    • 1970-01-01
    • 1970-01-01
    • 2020-01-10
    • 2023-03-06
    • 2021-05-05
    • 1970-01-01
    • 1970-01-01
    • 2020-12-18
    相关资源
    最近更新 更多