Member 13957140 Ответов: 2

Как я узнаю, что мои пакеты успешно достигли указанного UDP?


Я посылаю массив байтов в udp-порт, но не знаю, как это сделать.

Что я уже пробовал:

Я попытался отправить пакеты на UDP-сервер. Я получаю те же пакеты в приемнике. Означает ли это, что пакеты успешно отправлены?

2 Ответов

Рейтинг:
2

Jochen Arndt

UDP-это Протокол без гражданства - Википедия[^] где у вас нет никакой обратной связи.

Если вам нужно какое-то подтверждение, оно должно быть реализовано в верхнем протоколе. Это означает, что вы должны определить такой протокол или использовать существующий и реализовать его в коде. Но обычно в таких случаях лучше использовать TCP вместо UDP, чтобы избежать реализации большинства функций с отслеживанием состояния.

Цитата:
Я попытался отправить пакеты на UDP-сервер. Я получаю те же пакеты в приемнике. Означает ли это, что пакеты успешно отправлены?
Непонятно, что вы здесь имеете в виду. Если сервер просто повторяет полученные пакеты клиенту, это своего рода проверка / подтверждение. Но не очень надежный. Надежная проверка требует, чтобы отправители поддерживали список отправленных пакетов, в котором эти пакеты могут быть идентифицированы. Это относится также к пакетам подтверждения, где первоначальный получатель теперь является отправителем. Это даже усложняется, потому что не гарантируется, что пакеты принимаются по порядку.

Если вы подумаете обо всем этом и о том, как это реализовать, вы обнаружите, что уже существует протокол, который это делает: TCP.


Рейтинг:
0

Dave Kreskowiak

Просто, ты не понимаешь!

UDP не гарантирует доставку пакетов, не говоря уже о том, что получатель(ы) получает пакеты в правильном порядке.

UDP обычно используется в качестве "широковещательного" протокола, отправляя данные одному или нескольким клиентам, где данные не должны быть полными, чтобы получатели могли их понять, то есть потоковое видео.