python - UDP广播不起作用,是什么问题?
问题描述
我正在运行一个应该在广播中发送“嘿”的代码,问题是它不起作用,我不知道为什么。这是代码:
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 中嗅了嗅,以检查是否有东西从计算机中出来,但似乎什么都没有出来。
有人可以帮忙吗?提前致谢
编辑:我已经在另一台通过电缆连接到网络的计算机上测试了代码,而不是在 wifi 上,它工作正常。这两台计算机共享同一个网络。代码在一台计算机上运行而在另一台计算机上失败的原因可能是什么?
第二次编辑 - 解决方案:我找到了解决方案。因为电脑是通过wifi连接的,为了广播,你需要先将socket与你的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()
解决方案
在您发布的代码中,main
未调用函数。添加main()
通话
推荐阅读
- c++ - Boost Bind 和 async_wait
- python - 如何确定数据框是否为空白
- julia - 如何一次绘制一个简单的图形
- javascript - 如何在mysql数据库中获取帐户
- sql - 提取与最接近另一个日期的日期关联的值
- c# - 从 C# 中的 JSON 对象中提取数组(新
- docker - PhpStorm 调试器在调试时不会跳转到目标 php 文件中
- typescript - 将类型分配给作为 Maybe 类型的嵌套类型的属性
- sap - Webi 4.2 中的流形 AVG 聚合
- django - 将媒体文件和静态文件从 Amazon S3 提供给 Django/Heroku