python建立连接,获取动态地址,有缺陷

client.py

'''客户端'''

import socket

s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
s.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST, 1)

PORT = 1060

s.bind(('', PORT))
print('Listening for broadcast at ', s.getsockname())

while True:
    data, address = s.recvfrom(65535)
    print('Server received from {}:{}'.format(address, data.decode('utf-8')))

server.py

'''服务端'''

import socket

s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
s.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST, 1)

PORT = 1060

network = '<broadcast>'
s.sendto('Client broadcast message!'.encode('utf-8'), (network, PORT))

此方法也能够建立长连接,但是是客户端启动,服务端每运行一次,客户端获取一次动态ip

原文地址:https://www.cnblogs.com/lxz123/p/14167775.html