Linux sokcet编程问题。。。。。。。。。。。。。。。。
为什么我的bind老是不成功呢?
struct sockaddr_in srvaddr;
bzero(&srvaddr, sizeof(srvaddr));
srvaddr.sin_family = AF_INET;
srvaddr.sin_port = 0;
srvaddr.sin_addr.s_addr = htonl(INADDR_ANY);
还有,我换了端口也不行。。。。。。
怎么回事啊,有人能解决先谢谢了。。。。
------解决方案--------------------if ((sockfd = socket(AF_INET, SOCK_STREAM, 0)) == -1)
{ /*socket error */
perror( "socket "); exit(1);
}
printf( "socket OK!\n ");
status=setsockopt(sockfd,SOL_SOCKET,SO_REUSEADDR,&opt,len); /* allow the point address reused!*/
my_addr.sin_family=AF_INET;
my_addr.sin_port=htons(MYPORT);
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)
{/*bind error*/
perror( "bind "); exit(1);
}
printf( "bind OK!\n ");