socket sendto: Network is unreachable?

金庆
博客专家认证
2003-09-23 04:24:39
以下程序发个广播出错: Network is unreachable
原因是什么? 怎么解决?

#include <stdio.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>

main()
{
int fdUdp = socket(PF_INET, SOCK_DGRAM, 0);

int opt = 1;
int len = sizeof(opt);
setsockopt(fdUdp, SOL_SOCKET, SO_BROADCAST, (char *)&opt, len);

struct sockaddr_in sin;
sin.sin_family = AF_INET;
sin.sin_addr.s_addr = htonl(INADDR_ANY);
sin.sin_port = htons(12345);
bind(fdUdp, (struct sockaddr *)&sin, sizeof(struct sockaddr));

struct sockaddr_in addrBroadCast;
addrBroadCast.sin_family = AF_INET;
addrBroadCast.sin_addr.s_addr = htonl(INADDR_BROADCAST);
addrBroadCast.sin_port = htons(22345);

char aHello[] = "Hello world!";
int res = sendto(fdUdp, aHello, strlen(aHello), 0,
(struct sockaddr *)&addrBroadCast, sizeof(struct sockaddr));
if (res < 0)
perror("sendto");
}

...全文
1472 10 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
小小程序媛LLL 2021-08-03
  • 打赏
  • 举报
回复

楼主有解决吗?我也碰到了这个问题

金庆 2003-09-25
  • 打赏
  • 举报
回复
以ROOT运行.
还有其它原因吗?
blh 2003-09-25
  • 打赏
  • 举报
回复
确定你的内核是否支持广播
alpha27 2003-09-24
  • 打赏
  • 举报
回复
看看是不权限的问题。
金庆 2003-09-24
  • 打赏
  • 举报
回复
telnet,ftp都可以.
金庆 2003-09-24
  • 打赏
  • 举报
回复
ping 可以.
numchun 2003-09-24
  • 打赏
  • 举报
回复
查查你的机器上的路由是不是有问题?
liupengfei81 2003-09-24
  • 打赏
  • 举报
回复
看看你的机器能不能ping 局域网里的其他机器
金庆 2003-09-24
  • 打赏
  • 举报
回复
是否未配置网关就会发广播出错?
我只是想局域网广播。
zeng_xiangyang 2003-09-23
  • 打赏
  • 举报
回复
在我的机子上没错误啊

23,216

社区成员

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

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