bind error Socket operation on non-socket
在写一个linux下c的server的套接字中遇到了bind error!: Socket operation on non-socket的错误
看了看代码,看起来都是正确的
....
if((sockfd = socket(AF_INET,SOCK_STREAM,0))== -1){
perror("socket creat failed!");
exit(1);
}
printf("%d\n",sockfd);
//bind port
my_addr.sin_family = AF_INET;
my_addr.sin_port = htonl(SERVPORT);
my_addr.sin_addr.s_addr = INADDR_ANY;
bzero(&(my_addr.sin_zero),8);
if(bind(sockfd,(struct sockaddr*)&my_addr,sizeof(struct sockaddr)== -1)){
perror("bind error!");
exit(1);
}
.....
后来查了一下网络同学们的信息看到了我的错误
在 if(bind(sockfd,(struct sockaddr*)&my_addr,sizeof(struct sockaddr)== -1)){句中
有两个操作,一个是bend 一个是 ==的判断
我写的时候将 ==的判断加入到了bind中,所以出现了 Socket operation on non-socket
的错误。
更改为 if(bind(sockfd,(struct sockaddr*)&my_addr,sizeof(struct sockaddr))== -1)
在其他人的错误中还有一种 == 和 =的两个操作,一定要将优先级分开。
或者在多步操作中进行分步操作,避免优先级和疏忽的错误。
bind error Socket operation on non-socket的错误,完美解决吧。
转www.载for网站制作学习asp必.cn究