多路分解来自不同来源的 udp 流
Demultiplexing udp streams from different sources
我的服务器使用单个 udp 套接字从不同的 ip 地址接收 udp 流。 (所有发件人都发送到同一端口)。
当服务器上的 recv returns 有一大块数据时,该大块可能包含来自不同来源的字节?
假设没有,是否有可靠的方法来确定哪个发件人发送了整个块?
在 UDP 中,接收到的每个块都将是发送方先前传递给“send()”或“sendto()”的内容——与 TCP 不同,UDP 维护消息边界。
您可以通过调用“recvfrom()”而不是“recv()”来找出接收到的数据包的 IP 地址和端口。这些值将写入您提供指向的“结构 inaddr_in”。
我的服务器使用单个 udp 套接字从不同的 ip 地址接收 udp 流。 (所有发件人都发送到同一端口)。 当服务器上的 recv returns 有一大块数据时,该大块可能包含来自不同来源的字节? 假设没有,是否有可靠的方法来确定哪个发件人发送了整个块?
在 UDP 中,接收到的每个块都将是发送方先前传递给“send()”或“sendto()”的内容——与 TCP 不同,UDP 维护消息边界。
您可以通过调用“recvfrom()”而不是“recv()”来找出接收到的数据包的 IP 地址和端口。这些值将写入您提供指向的“结构 inaddr_in”。