Как исправить локальный порт отправки UDP-сокета - PullRequest
0 голосов
/ 23 января 2019

Я разрабатываю приложение, использующее модуль сокета Python для отправки пакетов с UDP. Из-за ограничений регулирования, мне нужно ограничить локальный порт сокета тоже диапазоном. Я пробовал:

def bind_to_port_range(low, high):
    m_counter = int(low)
    m_high = int(high)
    m_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
    while m_counter <= m_high:
        try:
            m_socket.bind(("localhost", m_counter))
            return m_socket
        except:
            m_counter += 1
    return None

sock  = bind_to_port_range(6000, 6050)
if sock:
    sock.sendto(my_message, (destination_ip, destination_port))

Используя netstat, я вижу, что порт правильно связывается, но пакет не отправляется в нужное место назначения. Я уверен, что остальная часть моего кода верна, поскольку я не ограничивал порт диапазоном, и он работал просто отлично

# sock = bind_to_port_range(6000, 6050)
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)

Есть что-то, чего мне здесь не хватает? Есть ли способ ограничить диапазон портов отправляющих сокетов, используя UDP таким образом? Спасибо.

1 Ответ

0 голосов
/ 24 января 2019

Все, что мне нужно было сделать, это заменить "localhost" на "".

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