Advertisement
Falexom

Untitled

May 13th, 2023
863
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.02 KB | None | 0 0
  1. #include <stdlib.h>
  2. #include <string.h>
  3. #include <stdio.h>
  4. #include <sys/types.h>
  5. #include <winsock2.h>
  6. #include <windows.h>s
  7. #include <ws2tcpip.h>
  8.  
  9. #pragma comment(lib, "Ws2_32.lib")
  10.  
  11. #define port 0x1A0A
  12. #define address 0x0100007f
  13.  
  14. void closeALL(SOCKET sock)
  15. {
  16.     closesocket(sock);
  17.     WSACleanup();
  18.     return;
  19. }
  20.  
  21.  
  22. void main()
  23. {
  24.     WSADATA wsaData;
  25.     int res;
  26.     SOCKET currentSocket = INVALID_SOCKET;
  27.     SOCKET clientSocket = INVALID_SOCKET;
  28.  
  29.  
  30.     res = WSAStartup(MAKEWORD(2, 2), &wsaData); // основа
  31.  
  32.     if (res != 0)
  33.     {
  34.         printf("Startup error!\n");
  35.         return;
  36.     }
  37.  
  38.     currentSocket = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); // сокет сервера пока нет клиента
  39.  
  40.     if (currentSocket == INVALID_SOCKET)
  41.     {
  42.         printf("Socket error!\n");
  43.         WSACleanup();
  44.         return;
  45.     }
  46.    
  47.     int val = 1;
  48.     setsockopt(currentSocket, SOL_SOCKET, SO_REUSEADDR, (const char*)&val, sizeof(val));
  49.  
  50.     struct sockaddr_in serverAddress;
  51.     serverAddress.sin_family = AF_INET;
  52.     serverAddress.sin_addr.s_addr = address;
  53.     serverAddress.sin_port = port;
  54.  
  55.  
  56.     if (bind(currentSocket, (struct sockaddr*)&serverAddress, sizeof(serverAddress)))   // бинд
  57.     {
  58.         printf("Bindind failed!\n");
  59.         closeALL(currentSocket);
  60.         return;
  61.     }
  62.  
  63.  
  64.     if (listen(currentSocket, SOMAXCONN) == SOCKET_ERROR)
  65.     {
  66.         printf("Unexpected socker error!\n");
  67.         closeALL(currentSocket);
  68.         return;
  69.     }
  70.  
  71.     clientSocket = accept(currentSocket, NULL, NULL);   // клиент прилетел
  72.     if (clientSocket == INVALID_SOCKET)
  73.     {
  74.         printf("Invalid client socket!\n");
  75.         closeALL(currentSocket);
  76.         return;
  77.     }
  78.     printf("Ok\n");
  79.  
  80.     closesocket(currentSocket);     // не нужен больше
  81.  
  82.     do {
  83.         printf("%d", 1);    // пока нету рса
  84.     } while (res > 0);
  85.  
  86.     closeALL(clientSocket);     // сворачиваемся
  87.  
  88.     return;
  89. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement