- 论坛徽章:
- 0
|
具体代码如下
int sock_ser_fd = 0;
//short port = 8888;
short port = UDP_TCP_SOCKET_PORT;
usleep(10000);//1 microsecond //should modifiy if it not suittable
printf("enter main task thread!\n");
if((sock_ser_fd = socket(AF_INET,SOCK_STREAM,0)) < 0)
perror("SOCK_STREAM error:");
printf("sock_ser_fd= %d\n\n",sock_ser_fd);
bzero(&tcp_server,sizeof(struct sockaddr_in));
tcp_server.sin_family = AF_INET; //ipv4
tcp_server.sin_addr.s_addr = htonl(INADDR_ANY);//net xulie
tcp_server.sin_port = htons((port));
/*bind a local address to the socket*/
if(close(sock_ser_fd) < 0)
perror("close tcp socketfd error!");
/////////
////////
/////////如下语句出现错误
if(bind(sock_ser_fd,(struct sockaddr*)&tcp_server,sizeof(struct sockaddr)) < 0)
{
perror("bind error:");
printf("errno=%d\n",errno);
}
/*specify sizeof request queue*/
if(listen(sock_ser_fd,20) < 0)
{
perror("listen failed:");
}
else
{
printf("listen successful!\n");
}
/////////////////////////////////////////////////
在绑定bind的时候出现“Bad file descriptor”的错误.如果系统重启就可以绑定。但停止程序后,有可能继续出现上面的绑定错误。 |
|