首页 > 代码库 > bind: Invalid argument

bind: Invalid argument

出现此问题在于,listen函数在socket函数和bind函数之间。

例:

 1 /*客户端程序开始建立sockfd描述符*/
 2     listenfd = socket(AF_INET,SOCK_STREAM,0);
 3     if(listenfd < 0)
 4     {
 5         perror("socket");
 6         exit(1);
 7     }
 8     /*使用套接字选项,避免出错*/
 9     if(setsockopt(listenfd,SOL_SOCKET,SO_REUSEADDR,&opt,sizeof(opt)) != 0)
10     {
11         perror("setsockopt");
12         exit(1);
13     }
14     /*服务器填充sockaddr结构*/
15     bzero(&server,sizeof(server));    //对结构体清零
16     server.sin_family = AF_INET;    //IPv4地址族
17     server.sin_addr.s_addr = ntohl(INADDR_ANY);    //服务器IP址址
18     server.sin_port = ntohs(8888);    //端口号
19 
20         /*设置允许连接的最大客户数*/
21     if(listen(listenfd,MAX_LISTEN_QUE) != 0)
22     {
23         perror("listen");
24         exit(1);
25     }
26     
27     /*邦定sockfd描述符到IP地址*/
28     int len = sizeof(struct sockaddr);
29     if(bind(listenfd,(struct sockaddr *)&server,len) != 0)
30     {
31         perror("bind");
32         exit(1);
33     }
34     
35      

如此操作时,容易出现bind: Invalid argument

bind: Invalid argument