我正在使用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限制发送套接字的端口范围?谢谢。
答案 0 :(得分:0)
我要做的就是将“ localhost”替换为“”。