免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 41712 | 回复: 2

[Linux] bind()函数出错 [复制链接]

论坛徽章:
0
发表于 2019-08-28 16:12 |显示全部楼层
为什么bind()函数值返回值为-1.源代码如下:
int main(int argc,char *argv[])
{
  int fd ;
  int fp ;
  int len=length ;
  char buf[length]={0};
  struct sockaddr_nl addr;
  struct nlmsghdr *nh;
  struct ifinfomsg *ifinfo ;
  struct rtattr *attr;
  fd=socket(AF_NETLINK,SOCK_RAW,NETLINK_ROUTE);
  if(fd<0)
  {
    printf("can not open NETLINK_ROUTE\n");
    exit(1);
   }
  setsockopt(fd, SOL_SOCKET, SO_RCVBUF, &len, sizeof(len));
  memset(&addr,0,sizeof(addr));
  addr.nl_family=AF_NETLINK;
  addr.nl_groups=RTNLGRP_LINK;
if( bind(fd,(struct sockaddr*)&addr,sizeof(struct sockaddr_nl))==-1);// 函数 bind() 用于把一个打开的 netlink socket 与 netlink 源 socket 地址绑定在一起。
  {
    printf("can not bind\n");
   return;
  }
}
运行后结果显示为can not bind
哪位大神会的,感激不尽。

论坛徽章:
18
发表于 2019-08-28 16:35 |显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
0
发表于 2020-04-26 20:19 |显示全部楼层
设置SO_REUSEPORT试试
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP