Чтобы определить тип сообщения, принятого в UDP-пакете, необходимо просмотреть конкретный буферный элемент [i], полученный от "recvfrom", чтобы различать тип предполагаемого сообщения. во-первых, я использую буфер в стеке для заполнения буфера (recvfrom), я знаю максимальный размер сообщения, которое я должен получить.
Поэтому скажем, что мой буфер массива составляет 300 байт, и я получаю пакеты разных размеров (например, 30, 80, 210 байтов и т.д.).... как я могу узнать полученный размер (это потому, что есть несколько других критериев, которые я тестирую для определения характера сообщения)
Знание этого размера позволит мне использовать memcpy для объекта.
Я думаю о strlen (udp packet), потому что он определяется во время выполнения, а не во время компиляции. проблема в том, что если остальная часть пакета была заполнена барахлом....
я ценю это
recv(2)
, который используется для приема пакета UDP, возвращает количество полученных байтов.