【发布时间】:2017-04-12 08:35:01
【问题描述】:
我需要建立广播连接。我在 python 中有 2 个不同的软件:
客户:
broadSock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
broadSock.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST,1)
broadData = 8000
broadSock.sendto(bytes(broadData), ('<broadcast>' ,3333))
服务器:
broadSockListe = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
broadSockListe.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
broadSockListe.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST, 1)
broadSockListe.bind(('',33333))
data, address = broadSockListe.recvfrom(1024)
我尝试在 shell 中使用以下命令监听服务器端口:sudo nc -l 3333,但似乎什么都没有到达。
客户端在windows上运行,服务器在ubuntu上运行。
谢谢
【问题讨论】:
-
好的,我解决了这个问题。端口不同:3333 vs 33333,我将客户端最后一个字符串更改为:broadSock.sendto(bytes(broadData,"utf-8"), (('
',3333))) 以旧方式发送一个长 8000 字节的“事物”。
标签: python sockets udp broadcast