我正在尝试学习编写套接字(在Python 3中),我只是尝试从服务器发送广播并从客户端接收它。
我的问题是,每当我尝试将数据包发送到 255.255.255.255 时,似乎实际上没有发送任何内容。
我尝试使用wireshark查找数据包,但除了环回接口外,我找不到任何数据包。
手动输入IP就可以在两台电脑之间成功发送消息,并且在wireshark中也看到了数据包。
这是客户端的代码
import socket
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
sock.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST, 1)
sock.bind(("0.0.0.0", 5005))
while True:
# sock.sendto(bytes("hello", "utf-8"), ip_co)
data, addr = sock.recvfrom(1024)
print(data)
这是服务器的代码
import socket
from time import sleep
def main():
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM, socket.IPPROTO_UDP) # UDP
sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
sock.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST, 1)
# sock.settimeout(2)
while True:
sock.sendto(bytes("test", "utf-8"), ("255.255.255.255", 5005))
sleep(1)
main()
抱歉,如果代码很难看,我对套接字和 python 非常陌生。