udp协议之server.cclient.c 源代码分析

    xiaoxiao2021-03-25  78

    udp 服务器程序源码,需要在客户端之前启动(具体原因还需分析)

     1 #include<sys/types.h>

      2 #include<sys/socket.h>   3 #include<netinet/in.h>   4 #include<time.h>   5 #include<string.h>   6 #include<unistd.h>   7 #include<stdio.h>   8 #define  BUFFLEN 1024             //最大缓冲   9 #define SERVER_PORT 8888  //监听端口  10 int main(int argc, char *argv[])  11 {  12         int s;  13         struct sockaddr_in local, to;  14         time_t now;  15         char buff[BUFFLEN];   16         char string[BUFFLEN];  //用于获取桌面消息的发送  17         int n = 0;  18         socklen_t len = sizeof(to);  19  20         s = socket(AF_INET,SOCK_DGRAM,0);  21  22         memset(&local,0,sizeof(local));  //绑定于本地地址  23         local.sin_family = AF_INET;  24         local.sin_addr.s_addr = htonl(INADDR_ANY); //任意地址,  25         local.sin_port = htons(SERVER_PORT);  26  27         bind(s, (struct sockaddr *)&local,sizeof(local));  28  29         while(1)  30         {  31                 memset(buff, 0, BUFFLEN);  32                 memset(string,0,BUFFLEN);  33                 n = recvfrom(s,buff,BUFFLEN,0,(struct sockaddr *)&to,&len);  34                 printf("The string recived is :%s",buff);  35                 gets(string); //gets() 24         local.sin_addr.s_addr = htonl(INADDR_ANY);  25         local.sin_port = htons(SERVER_PORT);  26  27         bind(s, (struct sockaddr *)&local,sizeof(local));  28  29         while(1)  30         {  31                 memset(buff, 0, BUFFLEN);  32                 memset(string,0,BUFFLEN);  33                 n = recvfrom(s,buff,BUFFLEN,0,(struct sockaddr *)&to,&len);  34                 printf("The string recived is :%s",buff);  35                 gets(string);//  用于桌面获取消息  36         //      scanf("%s",string);//用于桌面获取消息  37                 memset(buff,0,BUFFLEN);  38                 now = time(NULL);  //获取当前时间  39                 sprintf(buff,"$s\r\n",ctime(&now));  40                 strcat(buff,string);  //连接两字符的发送  41                 sendto(s,buff,strlen(buff)*2,0,(struct sockaddr *)&to,len);  42         }  43         close(s);  44         return 0;

     45  }

    udp 客户端的消息的发送

     1 #include<sys/types.h>   2 #include<sys/socket.h>   3 #include<netinet/in.h>   4 #include<time.h>   5 #include<string.h>   6 #include<unistd.h>   7 #include<stdio.h>   8 #define  BUFFLEN 1024   9 #define SERVER_PORT 8888  10 int main(int argc, char *argv[])  11 {  12         int s;  13         struct sockaddr_in server;  14         char buff[BUFFLEN];  15         int n = 0;  16         socklen_t len = 0;  17  18         s = socket(AF_INET, SOCK_DGRAM, 0);  19  20         memset(&server,0,sizeof(server));  21         server.sin_family = AF_INET;  22         server.sin_addr.s_addr = htonl(INADDR_ANY);  23         server.sin_port = htons(SERVER_PORT);  24  25         while(1)  26         {  27         memset(buff, 0, BUFFLEN);  28         strcpy(buff,"TIME"); //it has send the TIME to the server.but the se    rver not print it  29       //此处可再设置交互式发送消息的 buffer  30         sendto(s,buff,BUFFLEN,0,(struct sockaddr *)&server,sizeof(server));  31  32         memset(buff,0,BUFFLEN);  33         len = sizeof(server);  34         n  = recvfrom(s,buff,BUFFLEN,0,(struct sockaddr *)&server,&len);  35  36         if(n > 0){  37                 printf("TIME:%s",buff);  38         }  39         sleep(5);  40         }  41         close(s);  42         return 0;  43 }

    转载请注明原文地址: https://ju.6miu.com/read-33163.html

    最新回复(0)