我这个程序为什么只要有一个客户端断开,服务器就退出了。。
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;
}