Linux下怎样发送广播信息?

vk2211 2006-11-06 03:15:06
我做了一个Linux下的socket程序,用它向某一IP(如192.168.0.178)发数据包时,可以发送成功,向某一不存在的IP(即ping不能的IP)发送,也能成功,sendto的返回值都是正数,是已经发送的字节数,
但是,我向广播地址(192.168.0.255 或 255.255.255.255)发送时均不成功,返回值为-1,查看errno的值为13,义为权限不够(我是使用root发的,最高权限了),请问,这是为什么?怎样才能发广播信息?
...全文
704 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
vk2211 2006-11-07
  • 打赏
  • 举报
回复
拜托!sendto用的就是UDP协议,这是基础知识!
事实我已经说了,发192.168.0.1~192.168.0.254都可以成功,不管那个IP是否存在,单就192.168.0.255不成功,如果行我还问干什么
star119119 2006-11-07
  • 打赏
  • 举报
回复
static int so_broadcast = 1;


z = setsockopt(sockfd, SOL_SOCKET, SO_BROADCAST, &so_broadcast, sizeof(so_broadcast));
asphp 2006-11-07
  • 打赏
  • 举报
回复
static int so_broadcast = 1;


z = setsockopt(sockfd, SOL_SOCKET, SO_BROADCAST, &so_broadcast, sizeof(so_broadcast));
asphp 2006-11-07
  • 打赏
  • 举报
回复
setsockopt(sockfd,SOL_Socket,SO_BROADCAST,&on,sizeof(on));
asphp 2006-11-06
  • 打赏
  • 举报
回复
怎样才能发广播信息?
不得不告诉楼主,你如果用TCP协议的话,不可能广播,UDP协议的话,任何时候都是发送成功的,不管对方有无接收到。
相关请查一下相关资料,这是基础知识。

23,114

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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