Сокет установить номер порта источника - PullRequest
8 голосов
/ 23 апреля 2010

Я хотел бы отправить конкретный широковещательный пакет UDP. К сожалению, мне нужно отправить пакет udp с очень специфический порт для всех отправляемых пакетов.

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

Моя настройка сокета вещания выглядит следующим образом:

s = socket(AF_INET,SOCK_DGRAM)

s.setsockopt(SOL_SOCKET, SO_BROADCAST, 1)

Как я могу сделать это (установить исходный порт) в Python?

Спасибо!

Ответы [ 2 ]

14 голосов
/ 23 апреля 2010

Вам необходимо bind подключить сокет к конкретному порту, с которого вы хотите отправить. Метод bind принимает кортеж адреса, очень похожий на connect, хотя вы можете использовать подстановочный адрес. Например:

s.bind(('0.0.0.0', 1444))
8 голосов
/ 23 апреля 2010

Использование s.bind(('', port)).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...