如何修复发送UDP套接字的本地端口

时间:2019-01-23 18:28:24

标签: python-3.x sockets

我正在使用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 :(得分:0)

我要做的就是将“ localhost”替换为“”。