⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 server2.c

📁 linux环境下的简单服务器程序——用于教学
💻 C
字号:
 #include<pthread.h> #include<sys/types.h> #include<sys/socket.h> #include<stdio.h> #include<netinet/in.h> #include<arpa/inet.h> #include<unistd.h>  int clientnum=0;  int flag;  int client1fd,client2fd;  int server_sockfd,client_sockfd;  int client1first=0;  int client2first=0; void *client2work(void *arg) {  int num;  while(1)    {      char ch;        num=recv(client_sockfd,&ch,1,0);    if(num>0)      {   	printf("ending2\n");        if(clientnum==1)	{	 ch='0';	 send(client_sockfd,&ch,1,0);	 }	else	{	 ch++;	 send(client1fd,&ch,1,0);	}	printf("endiang2\n");	       }    } }    int main(){    int server_len,client_len,num=0;  struct sockaddr_in server_address;  struct sockaddr_in client_address;  unlink("server_socket");  server_sockfd = socket(AF_INET,SOCK_STREAM,0);  printf(" fjjjfj%d\n",client_sockfd);  server_address.sin_family = AF_INET;  server_address.sin_addr.s_addr =htonl(INADDR_ANY);  server_address.sin_port = htons(1989);  server_len = sizeof(server_address);    bind(server_sockfd,(struct sockaddr *)&server_address,server_len);  listen(server_sockfd,5);  printf("server waiting \n");    pthread_t client2thread;  while(1) {    printf(" fjjjfj%d\n",client_sockfd);  client_sockfd =accept(server_sockfd,(struct sockaddr *)&client_address,                       &client_len);          printf(" fjjjfj%d\n",client_sockfd);     if(clientnum==0)  {     printf(" 1111\n",client_sockfd);    clientnum+=1;    client1fd=client_sockfd;      }  else  {     if(clientnum==1&&client_sockfd!=client1fd)   {    clientnum++;    client2fd=client_sockfd;       }		         }    if(client2fd==client_sockfd&&client2first==0)    {      client2first=1;      flag= pthread_create(&client2thread,NULL,client2work,NULL) ;    }      printf("new customer : %d\n",client_sockfd);     if(client1fd==client_sockfd&&client1first==0)  {    client1first=1;    while(1)    {    char ch;        num=recv(client_sockfd,&ch,1,0);    if(num>0){   	printf("ending\n");	 ch++;        if(clientnum==1)	 send(client_sockfd,&ch,1,0);	else	{	 ch++;	 send(client2fd,&ch,1,0);	}	printf("endiang1\n");	            }    }    }   }  close(client_sockfd);}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -