client|server 最简单的聊天

  1 #include <stdio.h>

  2 #include <string.h>

  3 #include <stdlib.h>

  4 #include <sys/socket.h>

  5 #include <netinet/in.h>

  6 int main()

  7 {

  8         int sc = 0;

  9         int ret = 0;

 10         int fd = 0;

 11         unsigned char data[1024] = {0};

 12         sc = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);

 13         if(sc < 0){

 14                 perror("socket");

 15                 return 1;

 16         }

 17         struct sockaddr_in gg;

 18         gg.sin_family = AF_INET;

 19         gg.sin_port = htons(9527);

 20         gg.sin_addr.s_addr = inet_addr("192.168.31.238"); //这里写上自己的IP,因为访问者肯定要写主机的IP对吧。

 21 

 22         ret = bind(sc, (struct sockaddr *)&gg, 16);

 23         if(ret < 0){

 24                 perror("bind");

 25                 return 1;

 26         }

 27 

 28         ret = listen(sc, 10);

 29         if(ret < 0){

 30                 perror("listen");

 31                 return 1;

 32         }

 33 

 34         struct sockaddr_in nfd;

 35         int nfd_len = 0;

 36         fd = accept(sc, (struct sockaddr *)&nfd, &nfd_len);

 37         if(ret < 0){

 38                 perror("accept");

 39                 return 1;

 40         }

 41 

 42         ret = recv(fd, data, 1024, 0);

 43         if(ret < 0){

 44                 perror("recv");

 45                 return 1;

 46         }

 47 

 48         printf("client say :  %s\n", data);

 49         close(sc);

 50         close(nfd);

 51 }
  1 #include <stdio.h>

  2 #include <stdlib.h>

  3 #include <sys/socket.h>

  4 #include <string.h>

  5 #include <netinet/in.h>

  6 

  7 int main()

  8 {

  9                 int ret = 0;

 10                 int fd = 0;

 11                 int sc = 0;

 12                 unsigned char data[1024] = {0};

 13                 unsigned char arr[1024] = {0};

 14                 sc = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);

 15                 if(sc < 0){

 16                         perror("socket");

 17                         return 1;

 18                 }

 19 

 20                 struct sockaddr_in mm;

 21                 mm.sin_family = AF_INET;

 22                 mm.sin_port = htons(9527);

 23                 mm.sin_addr.s_addr = inet_addr("192.168.31.154");;

 24 

 25                 ret = connect(sc, (struct sockaddr *)&mm, 16);

 26                 if(ret < 0){

 27                         perror("connect");

 28                         return 1;

 29                 }

 30                 struct sockaddr_in gg;

 31         gg.sin_family = AF_INET;

 32         gg.sin_port = htons(9527);

 33         gg.sin_addr.s_addr = inet_addr("192.168.31.238");;

 34 

 35         ret = bind(sc, (struct sockaddr *)&gg, 16);

 36         if(ret < 0){

 37                 perror("bind");

 38                 return 1;

 39         }

 40 

 41         ret = listen(sc, 10);

 42         if(ret < 0){

 43                 perror("listen");

 44                 return 1;

 45         }

 46 

 47          struct sockaddr_in nfd;

 48         int nfd_len = 0;

 49         fd = accept(sc, (struct sockaddr *)&nfd, &nfd_len);

 50         if(ret < 0){

 51                 perror("accept");

 52                 return 1;

 53         }

 54                 while(1){

 55                 read(0, data, 1024);

 56 

 57                 ret = send(sc, data, 1024, 0);

 58                 if(ret < 0){

 59                         perror("send");

 60                         return 1;

 61                 }

 62                  ret = recv(fd, arr, 1024, 0);

 63         if(ret < 0){

 64                 perror("recv");

 65                 return 1;

 66         }

 67 

 68         printf("client say :  %s\n", arr);

 69 

 70                 }

 71 

 72 

 73                 close(sc);

 74 

 75 }

 

你可能感兴趣的:(server)