Вы должны создать свой пакет UDP, возможно, создав класс UDP, который содержит все данные, содержащиеся в стандартном пакете UDP.
Данные как следует :
Исходный порт [SP] (16 бит) : Когда предпринимается попытка подключения или выполняется соединение, это указывает, какой порт локальный компьютер ожидает для получения ответов от компьютера назначения.
Порт назначения [DP] (16 бит) : Когда пользователь желает подключиться к услуге на удаленной машине, программа прикладного уровня указывает, какой порт следует использовать при первоначальных подключениях. Если он не является частью начального соединения, он указывает, какой номер порта будет использоваться для удаленной машины при отправке пакета по назначению.
Длина [Len] (16 бит) : Это позволяет приемной станции знать, сколько входящих битов должно быть частью действительного пакета. Длина - это подсчет того, сколько байтов является частью пакета UDP, включая байты в заголовке. Поскольку UDP всегда имеет 4 поля в заголовке и каждое имеет 16 бит, а данные / полезная нагрузка переменной длины, мы знаем, что длина будет 8 + (количество байтов в полезной нагрузке.)
Контрольная сумма UDP [UDPCS] (16 бит) : Это контрольная сумма, которая охватывает заголовок и часть данных пакета UDP, чтобы позволить принимающему хосту проверить целостность входящего пакета UDP. Пакет UDP загружается с предварительно определенным номером в поле контрольной суммы, а затем, когда контрольная сумма вычисляется, тогда контрольная сумма записывается поверх предыдущего значения. Когда пакет прибывает в пункт назначения, операционная система целевого устройства просматривает поле заголовка 4 (байты, сделанные из битов с 16 по 31) и извлекает их из пакета, а затем пересчитывает контрольную сумму пакета без каких-либо данных в поле контрольной суммы , Затем ОС сравнивает контрольную сумму, вычисленную с той, которая была передана в пакете. Если контрольная сумма одинакова, с данными все в порядке, и ей разрешено проходить, но если есть разница, UDP-пакет и данные отбрасываются, и принимающая машина не предпринимает попыток получить новый копировать, и отправляющий аппарат не будет пытаться отправить тот же пакет. Пакет потерян навсегда. UDP не надежен! Надежный протокол пакета TCP / IP транспортного уровня см. В пакете TCP.
Данные (переменные биты) : Как и следовало ожидать, это полезная нагрузка или часть данных пакета UDP. Полезной нагрузкой может быть любое количество протоколов (часто прикладного уровня). Некоторые из наиболее часто используемых протоколов UDP включают в себя NFS, DNS, а также несколько протоколов потоковой передачи аудио и видео. Если в UDP-пакете возникает ошибка и ее необходимо исправить, она предоставляется прикладному уровню, чтобы найти ошибку и запросить ее прикладной уровень «порция» или «порция» данных.
Создание класса, который содержит все эти данные и заполняет их соответствующим образом, перегружает ToString
, чтобы вы могли затем преобразовать в байтовый массив.
Надеюсь, это поможет.