Guest User

Untitled

a guest
Jun 19th, 2018
80
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.12 KB | None | 0 0
  1. #include <sys/types.h>
  2. #include <sys/socket.h>
  3. #include <netinet/in.h>
  4. #include <stdio.h>
  5. #include <stdlib.h>
  6. #include <unistd.h>
  7. int main()
  8. {
  9.     int sock, listener;
  10.     struct sockaddr_in addr;
  11.     char buf[1024];
  12.     int bytes_read;
  13.  
  14.     listener = socket(AF_INET, SOCK_STREAM, 0);
  15.     if(listener < 0)
  16.     {
  17.         perror("socket");
  18.         exit(1);
  19.     }
  20.     //bzero(&addr, sizeof(addr));
  21.     addr.sin_family = AF_INET;
  22.     addr.sin_port = htons(0);
  23.     addr.sin_addr.s_addr = htonl(INADDR_ANY);
  24.     if(bind(listener, (struct sockaddr *)&addr, sizeof(addr)) < 0)
  25.     {
  26.         perror("bind");
  27.         exit(2);
  28.     }
  29.  
  30.     printf("Сервер номер порта: %d\n",ntohs(addr.sin_port));
  31.     listen(listener, 1);
  32.  
  33.     while(1)
  34.     {
  35.         sock = accept(listener, NULL, NULL);
  36.         if(sock < 0)
  37.         {
  38.             perror("accept");
  39.             exit(3);
  40.         }
  41.  
  42.         while(1)
  43.         {
  44.             bytes_read = recv(sock, buf, 1024, 0);
  45.             if(bytes_read <= 0) break;
  46.             send(sock, buf, bytes_read, 0);
  47.         }
  48.  
  49.         close(sock);
  50.     }
  51.  
  52.     return 0;
  53. }
Add Comment
Please, Sign In to add comment