1 //**************************************服务器**********************************************
  2 #include <stdio.h>
  3 #include <stdlib.h>
  4 #include <string.h>
  5 #include <time.h>
  6 #include <sys/types.h>          /* See NOTES */
  7 #include <sys/socket.h>
  8 #include <netinet/in.h>
  9 #include <netinet/ip.h> /* super*/
 10 #include <arpa/inet.h>
 11 #include <unistd.h>
 12 int server_init();
 13 int main(int argc,const char *argv[])
 14 {    
 15     //服务器初始化
 16     server_init();
 17     //数据交互
 18     return 0;
 19 }
 20 typedef struct sockaddr SA;
 21 int server_init()
 22 {
 23     int sockfd,ret;
 24     //创建套接字
 25     sockfd=socket(AF_INET,SOCK_DGRAM,0);
 26     if(sockfd==-1)
 27     {
 28         perror("socket");
 29         return -1;
 30     }        
 31     struct sockaddr_in seraddr;
 32     seraddr.sin_family=AF_INET;
 33     seraddr.sin_port=htons(8181);
 34     seraddr.sin_addr.s_addr=htonl(INADDR_ANY);
 35     //绑定套接字
 36     ret=bind(sockfd,(SA*)&seraddr,sizeof(seraddr));
 37     if(ret==-1)
 38     {
 39         perror("bind");
 40         return -1;
 41     }
 42     printf("bind-------------\n");
 43     char buf[32];
 44     struct sockaddr_in cliaddr;
 45     socklen_t len=sizeof(cliaddr);
 46     while(1)
 47     {
 48         //接收数据
 49         bzero(buf,sizeof(buf));
 50         recvfrom(sockfd,buf,sizeof(buf),0,(SA*)&cliaddr,&len);
 51         printf("ip:%s port:%d cli==%s\n",inet_ntoa(cliaddr.sin_addr),ntohs(cliaddr.sin_port),buf);
 52         sendto(sockfd,"hello",6,0,(SA*)&cliaddr,sizeof(cliaddr));
 53     }    
 54     close(sockfd);
 55     return sockfd;
 56 }
 57 //**************************************客户端**********************************************
 58 #include <stdio.h>
 59 #include <stdlib.h>
 60 #include <string.h>
 61 #include <time.h>
 62 #include <sys/types.h>          /* See NOTES */
 63 #include <sys/socket.h>
 64 #include <netinet/in.h>
 65 #include <netinet/ip.h> /* super*/
 66 #include <arpa/inet.h>
 67 #include <unistd.h>
 68 int server_init();
 69 int main(int argc,const char *argv[])
 70 {    
 71 
 72     //服务器初始化
 73     server_init();
 74 
 75     //数据交互
 76     
 77 
 78     return 0;
 79 }
 80 
 81 typedef struct sockaddr SA;
 82 
 83 int server_init()
 84 {
 85     int sockfd,ret;
 86     //创建套接字
 87     sockfd=socket(AF_INET,SOCK_DGRAM,0);
 88     if(sockfd==-1)
 89     {
 90         perror("socket");
 91         return -1;
 92     }    
 93     char buf[32];
 94     struct sockaddr_in seraddr;
 95     seraddr.sin_family=AF_INET;
 96     seraddr.sin_port=htons(8181);
 97     seraddr.sin_addr.s_addr=htonl(INADDR_ANY);
 98     while(1)
 99     {
100         sleep(2);
101         //接收数据
102         bzero(buf,sizeof(buf));
103         sendto(sockfd,"hello",24,0,(SA*)&seraddr,sizeof(seraddr));
104         recvfrom(sockfd,buf,sizeof(buf),0,NULL,NULL);
105         printf("buf==%s\n",buf);
106     }    
107     
108     close(sockfd);
109     return sockfd;
110 }

 

posted on 2020-09-23 15:50  ღ惟吾德馨ღ  阅读(157)  评论(0)    收藏  举报