0

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)

接收者是否有可能"HelloWorld"在一个接收呼叫中而不是"Hello"单独接收"World"

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

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

我一直在考虑这个问题,但无法提出任何解决方案。

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

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


谢谢你的帮助!

4

1 回答 1

1

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

一个 recvfrom 调用只会收到一个 sendto 调用。

资料来源:

于 2018-09-03T20:06:39.033 回答