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

📄 socketnetserver.c

📁 uClinux 下MicroWindows开发的电机控制平台软件和模拟示波器的双路数据采集系统源码
💻 C
字号:
#include<netdb.h>#include<netinet/in.h>#include<stdlib.h>#include<stdio.h>#include<string.h>#include<sys/types.h>#include<sys/socket.h>#define MaxCount 5#define Port_Number_One 2501#define Port_Number_Two 2502char String_One[1610];char String_Two[1610];#include "Short_To_String.c"void *FUN_Socket_One()//1通道发送服务端{   int Server_Sockfd;   int Client_Sockfd;   struct sockaddr_in Server_addr;   struct sockaddr_in Client_addr;   int sin_size;   int len1;      if((Server_Sockfd=socket(AF_INET,SOCK_STREAM,0))==-1)//Server_Sockfd代表服务器的套接字   {                                       //它代表服务器       return NULL;   }   bzero(&Server_addr,sizeof(struct sockaddr_in));   Server_addr.sin_family=AF_INET;   Server_addr.sin_addr.s_addr=htons(INADDR_ANY);   Server_addr.sin_port=htons(Port_Number_One);      if(bind(Server_Sockfd,(struct sockaddr *)&Server_addr,sizeof(struct sockaddr))==-1)   {        return NULL;   }      if(listen(Server_Sockfd,MaxCount)==-1)   {       return NULL;   }      sin_size=sizeof(struct sockaddr_in);   ACCEPT1:   if((Client_Sockfd=accept(Server_Sockfd,(struct sockaddr *)&Client_addr,&sin_size))==-1)//Client_Sockfd为请求者的套接字     {                                                         //从这开始Client_Sockfd就代表这次请求的客户机	   return NULL;     }   while(1)   {         if(Mask_AD)        {         /*发送数据区*/          len1=FUN_Short_To_String1();	 if( send(Client_Sockfd,String_One,sizeof(String_One),0)==-1 )//如果客户端断开则返回ACCEPT处等待新的连接请求	   {	     close(Client_Sockfd);	     goto ACCEPT1;	   }         /*发送数据区*/            }       if(!Mark_System_Stop)	{	   close(Server_Sockfd);	   pthread_exit(NULL);	}    }//while(1)   return NULL;   }void *FUN_Socket_Two()//2通道发送服务端{   int Server_Sockfd;   int Client_Sockfd;   struct sockaddr_in Server_addr;   struct sockaddr_in Client_addr;   int sin_size;   int len2;      if((Server_Sockfd=socket(AF_INET,SOCK_STREAM,0))==-1)//Server_Sockfd代表服务器的套接字   {                                       //它代表服务器       return NULL;   }   bzero(&Server_addr,sizeof(struct sockaddr_in));   Server_addr.sin_family=AF_INET;   Server_addr.sin_addr.s_addr=htons(INADDR_ANY);   Server_addr.sin_port=htons(Port_Number_Two);      if(bind(Server_Sockfd,(struct sockaddr *)&Server_addr,sizeof(struct sockaddr))==-1)   {        return NULL;   }      if(listen(Server_Sockfd,MaxCount)==-1)   {       return NULL;   }   sin_size=sizeof(struct sockaddr_in);   ACCEPT2:   if((Client_Sockfd=accept(Server_Sockfd,(struct sockaddr *)&Client_addr,&sin_size))==-1)//Client_Sockfd为请求者的套接字     {                                                         //从这开始Client_Sockfd就代表这次请求的客户机	   return NULL;     }   while(1)    {      if(Mask_AD)        {	  /*发送数据区*/           len2=FUN_Short_To_String2();   	  if( send(Client_Sockfd,String_Two,sizeof(String_Two),0)==-1 )	    {	       close(Client_Sockfd);	       goto ACCEPT2;	    }           /*发送数据区*/         }      if(!Mark_System_Stop)        {	  close(Server_Sockfd);	  pthread_exit(NULL);	}    }//while(1)   return NULL;}

⌨️ 快捷键说明

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