欧阳莉姿 发表于 2019-08-28 16:12

bind()函数出错

为什么bind()函数值返回值为-1.源代码如下:
int main(int argc,char *argv[])
{
int fd ;
int fp ;
int len=length ;
char buf={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
哪位大神会的,感激不尽。

qwsxcd 发表于 2019-08-28 16:35

ckcckk 发表于 2020-04-26 20:19

设置SO_REUSEPORT试试
页: [1]
查看完整版本: bind()函数出错