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. Если можно получить несколько сообщений за один прием, как мне обеспечить, чтобы мой код обрабатывал оба сообщения отдельно?
Я думал об этом, но не смог найти никакого решения.
Моей первой идеей было добавление байта в начале вызова отправки с указанием длины сообщения.
Я не верю, что это было бы также надежно, потому что, если в буфере получателей слишком много данных, тогда начало (длина сообщения) может быть обрезано, и поэтому моя программа потерпит неудачу.
Спасибо за любую помощь!