红联Linux门户
Linux帮助

大神帮忙看下我的线程与端口号的冲突

发布时间:2013-10-24 10:26:05来源:红联作者:那个小明
我这个程序为什么只要有一个客户端断开,服务器就退出了。。
int main(int argc,char **argv)
{
//套接字
int listenfd; //监听socket
//打开socket IPV4 TCP
listenfd = socket(AF_INET,SOCK_STREAM,0);
//定义地址结构体
struct sockaddr_in servaddr;
memset(&servaddr,0,sizeof(servaddr));
servaddr.sin_family = AF_INET;
//host to network short 网络字节序--大小端
servaddr.sin_port = htons(9999);
servaddr.sin_addr.s_addr = htonl(INADDR_ANY);
//绑定地址
if(bind(listenfd,(struct sockaddr *)&servaddr,sizeof(servaddr)) == -1)
{
printf("bind error\n");
close(listenfd);
exit(0);
}
//监听
listen(listenfd,5); //将listenfd被为被动

//通信
int clientfd;
struct sockaddr_in peeraddr;
int socklen = sizeof(peeraddr);
memset(&peeraddr,0,socklen);
//接受客户端
pthread_t tid1;
while(1)
{
clientfd = accept(listenfd,(struct sockaddr*)&peeraddr,&socklen);

pthread_create(&tid1,NULL,pthread,(void*)clientfd);

}
//与客户通信
pthread_join(tid1,NULL);
close(listenfd);
return 0;
}
文章评论

共有 0 条评论