2013-08-07 2 views
1

Я пытаюсь отправить команды с использованием UDP. Приемник должен получать дейтаграмму UDP и отвечать. Однако я бы хотел, чтобы ответ всегда отправлялся в исходный порт отправителя. Я знаю, как разбирать порт (заголовок структуры и перемещать указатель в нужную позицию ...), однако я ищу функцию, которая возвращает весь полученный кадр, включая заголовки, а не только датаграмму/данные.Получение дейтаграммы UDP и порта источника анализа

+0

Почему вы хотите использовать UDP для этого? – zoska

+0

Я использую многоадресную рассылку UDP. UDP представляется более удобным при обращении к большому количеству приемников. Конечно, TCP работает тоже. Но данные не так критичны. –

ответ

6

Как насчет функции recvfrom()? Он позволяет захватывать данные и заполняет структуру sockaddr, из которой вы можете найти исходный порт отправителя.

+0

hmm не знал, что recvfrom() заполнит sockaddr. Спасибо за ответ. Я немного новичок в программировании сокетов. –

+0

Просто попробовал. Намного легче, чем я думал. Спасибо –

+0

@hhachem Добро пожаловать :) – Xaqq