1 回答

TA貢獻(xiàn)1875條經(jīng)驗(yàn) 獲得超5個(gè)贊
你有一些錯(cuò)誤和非常難以理解的變量名稱。
bind()
用于將服務(wù)器分配給本地網(wǎng)卡 - 而不是客戶端 IP - 并且只使用一次 - 在循環(huán)之前不要關(guān)閉套接字,因?yàn)椋ㄎ矣浀茫┧枰俅蝿?chuàng)建套接字
import socket
#server_ip = socket.gethostbyname(socket.gethostname()) # this gives me `127.0.1.1` because I have it in `/etc/hosts`
server_ip = '192.168.1.13' # <-- IP of my WiFi card on server
server_port = 4005
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
#s.bind( (server_ip, server_port) ) # assign server to one local network card
s.bind( ('0.0.0.0', server_port) ) # assign server to all local network cards
text = f'{server_ip}:{server_port}'
print(text)
# --- loop ---
for i in range(1, 255):
client_ip = f'192.168.1.{i}'
client_port = 4005
print(f'{client_ip}:{client_port}')
s.sendto(text.encode('utf-8'), (client_ip, client_port))
# --- after loop ---
s.close() # only if you will no use this socket any more
添加回答
舉報(bào)