Advertisement
Guest User

Untitled

a guest
Sep 19th, 2019
141
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.33 KB | None | 0 0
  1. /* Код сервера на языке Си */
  2.  
  3. #include <sys/types.h>
  4. #include <sys/socket.h>
  5. #include <netinet/in.h>
  6. #include <arpa/inet.h>
  7. #include <stdio.h>
  8. #include <stdlib.h>
  9. #include <string.h>
  10. #include <unistd.h>
  11.  
  12. #define port    1100
  13.  
  14. int main(void) {
  15.     struct sockaddr_in stSockAddr;
  16.     int i32SocketFD = socket(PF_INET, SOCK_STREAM, IPPROTO_TCP);
  17.  
  18.     if (i32SocketFD == -1) {
  19.         perror("ошибка при создании сокета");
  20.         exit(EXIT_FAILURE);
  21.     }
  22.  
  23.     memset(&stSockAddr, 0, sizeof (stSockAddr));
  24.  
  25.     stSockAddr.sin_family = PF_INET;
  26.     stSockAddr.sin_port = htons(port);
  27.     stSockAddr.sin_addr.s_addr = htonl(INADDR_ANY);
  28.  
  29.     if (bind(i32SocketFD, (struct sockaddr*) &stSockAddr, sizeof (stSockAddr)) == -1) {
  30.         perror("Ошибка: связывания");
  31.  
  32.         close(i32SocketFD);
  33.         exit(EXIT_FAILURE);
  34.     }
  35.  
  36.     if (listen(i32SocketFD, 10) == -1) {
  37.         perror("Ошибка: прослушивания");
  38.  
  39.         close(i32SocketFD);
  40.         exit(EXIT_FAILURE);
  41.     }
  42.  
  43.     for (;;) {
  44.         int i32ConnectFD = accept(i32SocketFD, 0, 0);
  45.  
  46.         if (i32ConnectFD < 0) {
  47.             perror("Ошибка: принятия");
  48.             close(i32SocketFD);
  49.             exit(EXIT_FAILURE);
  50.         }
  51.  
  52.         /* выполнение операций чтения и записи ... */
  53.  
  54.         shutdown(i32ConnectFD, SHUT_RDWR);
  55.  
  56.         close(i32ConnectFD);
  57.     }
  58.  
  59.     return 0;
  60. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement