Advertisement
Guest User

Untitled

a guest
Jan 17th, 2021
32
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.81 KB | None | 0 0
  1. #include <WinSock2.h>
  2. #include <WS2tcpip.h>
  3. #include <Windows.h>
  4. #include <iostream>
  5.  
  6. using namespace std;
  7.  
  8. #define DEFAULT_BUFLEN 1024
  9. #define DEFAULT_PORT "27015"
  10.  
  11. int main()
  12. {
  13. WSADATA wsaData;
  14.  
  15. SOCKET ListenSocket = INVALID_SOCKET;
  16. SOCKET ClientSocket = INVALID_SOCKET;
  17.  
  18. struct addrinfo* result = NULL;
  19. struct addrinfo hints;
  20.  
  21. char recvbuf[DEFAULT_BUFLEN];
  22. int recvbuflen = DEFAULT_BUFLEN;
  23.  
  24. if (WSAStartup(MAKEWORD(2, 2), &wsaData))
  25. {
  26. cout << "startup error: " << WSAGetLastError() << endl;
  27. return TRUE;
  28. }
  29.  
  30. ZeroMemory(&hints, sizeof(hints));
  31. hints.ai_family = AF_INET;
  32. hints.ai_socktype = SOCK_STREAM;
  33. hints.ai_protocol = IPPROTO_TCP;
  34. hints.ai_flags = AI_PASSIVE;
  35.  
  36. if (getaddrinfo(NULL, DEFAULT_PORT, &hints, &result))
  37. {
  38. cout << "getaddrinfo error: " << WSAGetLastError() << endl;
  39. WSACleanup();
  40. return 0;
  41. }
  42.  
  43. ListenSocket = socket(result->ai_family, result->ai_socktype, result->ai_protocol);
  44. if (ListenSocket == INVALID_SOCKET)
  45. {
  46. cout << "socket error: " << WSAGetLastError() << endl;
  47. freeaddrinfo(result);
  48. WSACleanup();
  49. return 0;
  50. }
  51.  
  52. if (bind(ListenSocket, result->ai_addr, (int)result->ai_addrlen))
  53. {
  54. cout << "bind error: " << WSAGetLastError() << endl;
  55. freeaddrinfo(result);
  56. closesocket(ListenSocket);
  57. WSACleanup();
  58. return 0;
  59. }
  60.  
  61. freeaddrinfo(result);
  62.  
  63. if (listen(ListenSocket, SOMAXCONN))
  64. {
  65. cout << "listen error: " << WSAGetLastError() << endl;
  66. closesocket(ListenSocket);
  67. WSACleanup();
  68. return 0;
  69. }
  70.  
  71. ClientSocket = accept(ListenSocket, NULL, NULL);
  72. if (ClientSocket == INVALID_SOCKET)
  73. {
  74. cout << "accept error: " << WSAGetLastError() << endl;
  75.  
  76. closesocket(ListenSocket);
  77. WSACleanup();
  78. return 0;
  79. }
  80.  
  81. closesocket(ListenSocket);
  82.  
  83. closesocket(ClientSocket);
  84. WSACleanup();
  85.  
  86. return 0;
  87. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement