UDP-是否可以在一个接收呼叫中接收多条消息?

UDP-是否可以在一个接收呼叫中接收多条消息?,udp,recvfrom,Udp,Recvfrom,1。是否可以在一个接收呼叫中接收多条消息? 发送方伪代码: target = ("xxx.xxx.xxx.xxx", 1234) sender = new_udp_socket() sender.send("Hello", target) sender.send("World", target) receiver = new_udp_socket() receiver.bind("", 1234) while true data = receiver.recvfrom(512)

1。是否可以在一个接收呼叫中接收多条消息?

发送方伪代码:

target = ("xxx.xxx.xxx.xxx", 1234)
sender = new_udp_socket()
sender.send("Hello", target)
sender.send("World", target)
receiver = new_udp_socket()
receiver.bind("", 1234)

while true
    data = receiver.recvfrom(512)
    print(data)
接收机伪码:

target = ("xxx.xxx.xxx.xxx", 1234)
sender = new_udp_socket()
sender.send("Hello", target)
sender.send("World", target)
receiver = new_udp_socket()
receiver.bind("", 1234)

while true
    data = receiver.recvfrom(512)
    print(data)
接收器是否可能在一次接收呼叫中接收到
“HelloWorld”
,而不是分别接收
“Hello”
“World”

有人告诉我这是可能的,但我想确定一下

2。如果可以在一个接收呼叫中接收多条消息,如何确保我的代码分别处理这两条消息?

我一直在考虑这个问题,但没能想出任何解决办法

我的第一个想法是在send调用的开头添加一个字节,说明消息的长度

我也不相信这是可靠的,因为如果接收器缓冲区中有太多数据,那么开始部分(消息长度)可能会被切断,因此我的程序会失败



谢谢你的帮助

经过大量研究,我找到了我问题的答案

一个recvfrom呼叫将只接收一个sendto呼叫

来源: