У меня есть FPGA-устройство, с которым мой код должен говорить. Протокол выглядит следующим образом:Общие вопросы о сокетах UDP
Я отправляю один ненулевой байт (UDP), чтобы включить функцию. Затем плата FPGA начинает извергать данные на порту, из которого я отправил.
Вы видите мою дилемму? Я знаю, какой порт я послал сообщение к, но я не знаю, из какого порта я послал (этот порт обычно не выбирается автоматически в ОС?).
Мое лучшее предположение, что я должен сделать, это создать сокет с IP-адресом назначения и номером порта, а затем повторно использовать сокет для приема. Если я это сделаю, будет ли он уже настроен для прослушивания в порту, с которого я отправил исходное сообщение?
Кроме того, для вашей информации варианты этого кода будут записаны в Python и C#. Я могу найти конкретные API, как и для модели сокетов BSD.
Я нашел хорошую информацию в книге, которая очистила этот вопрос для меня. Если я снова смогу найти этот параграф, я добавлю его в качестве комментария. По сути, это подтвердило мои подозрения. 1) Вы не можете указать порт * из *, который вы хотите отправить. 2) При использовании UDP нет необходимости связывать. После использования sendto() сокет может повторно использоваться для приема данных на порте * из *, который был отправлен первым запросом. Мне кажется странным, что это поведение не было очевидным для нескольких документов, которые я читал. Я посмотрю, смогу ли я отследить эту ссылку. – Nate