UDP广播无法发出,能不能进来看看?

wh357589873 2016-03-29 04:17:44
先贴代码:
#coding:utf-8

import socket,sys

dest = ('255.255.255.255', 6666)

s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
s.setsockopt(socket.SOL_SOCKET,socket.SO_BROADCAST,1)

s.sendto("hello",dest)

print "looking for replies: press Ctrl + c to stop "
while 1:
(buf ,address) = s.recvfrom(1024)
if not len(buf):
break
print "Revived from %s:%s" %(address ,buf)


这个时候,怎么发都发不出去。但是把IP改成我的子网广播就可以了。
dest = ('192.168.15.255', 6666)
这是为啥啊?有什么办法让全为255的也能进行广播?
有人说是路由器的问题,但是我用手机进行广播的时候,用255.255.255.255就是成功的。代码是别人写的我就贴不出来了。
...全文
862 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
wh357589873 2016-04-16
  • 打赏
  • 举报
回复
引用 6 楼 WUYUAN2011WOAINI 的回复:
你在虚拟机里,网络的是路由不出去的
我没在虚拟机里。我就是正常机器,不过安装了虚拟机,我在win里头发广播,发现不行,再把虚拟机的网卡禁用了发现就能发出去了。我发现用python的时候,取本机ip地址,竟然把虚拟机的Ip给取出来了。
kuankuan_qiao 2016-03-30
  • 打赏
  • 举报
回复
你在虚拟机里,网络的是路由不出去的
kuankuan_qiao 2016-03-30
  • 打赏
  • 举报
回复
向255.255.255.255发送数据包,这种数据包不会被路由,它只能到达本物理网络中的所有主机,此种广播叫有限广播。
kinkon007 2016-03-30
  • 打赏
  • 举报
回复
你是啥系统?不同的系统对广播的处理不完全一样,理论上你的子网广播的范围是等同于全255广播的,因为所有的广播都是通过不了路由器或vlan的限制的。
wh357589873 2016-03-30
  • 打赏
  • 举报
回复
引用 2 楼 kinkon007 的回复:
你是啥系统?不同的系统对广播的处理不完全一样,理论上你的子网广播的范围是等同于全255广播的,因为所有的广播都是通过不了路由器或vlan的限制的。
我获取IP竟然获取的是虚拟机的ip,就是我设置的xx.xx.xx.1,所以我怀疑广播全都跑了我虚拟机里的那个网络里去了
wh357589873 2016-03-30
  • 打赏
  • 举报
回复
引用 1 楼 cutmelon 的回复:
你得把TTL设成1吧
貌似和这个没关系。
cutmelon 2016-03-29
  • 打赏
  • 举报
回复
你得把TTL设成1吧

18,363

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧