UDP广播无效,这是什么问题?

时间:2019-03-16 22:10:02

标签: python sockets networking

我正在运行一个应在广播中发送“嘿”的代码,事实是它不起作用,我也不知道为什么。这是代码:

import socket  

def main():
    searcher_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
    searcher_socket.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST, 1)
    searcher_socket.sendto("Hey", ("255.255.255.255", 9010))
    response, address = searcher_socket.recvfrom(1024)
    print response

main()

我在Wireshark中嗅探,以检查计算机是否有东西出来,但似乎什么也没出来。.enter image description here

有人可以帮忙吗?预先感谢

编辑:我已经在通过电缆而不是在wifi上连接到网络的另一台计算机上测试了该代码。这两台计算机共享同一网络。代码在一台计算机上运行而在另一台计算机上失败的原因可能是什么?

第二个编辑-解决方案:我找到了解决方案。由于计算机是通过wifi连接的,因此要进行广播,您需要先将套接字与您的IP地址绑定。

import socket  

def main():
    searcher_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
    searcher_socket.bind(("192.168.1.11", 40400)) # 192.168.1.11 is my computer ip address
    searcher_socket.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST, 1)
    searcher_socket.sendto("Hey", ("255.255.255.255", 9010))
    response, address = searcher_socket.recvfrom(1024)
    print response

main()

1 个答案:

答案 0 :(得分:2)

在您发布的代码中,未调用函数main。添加main()通话