Endil

Untitled

Sep 2nd, 2015
75
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.63 KB | None | 0 0
  1. // CN-lab1-server.cpp: определяет точку входа для консольного приложения.
  2. //
  3.  
  4. #include "stdafx.h"
  5. #include <winsock2.h>
  6. #include <iostream>
  7. #include <windows.h>
  8. #include <string>
  9.  
  10. #pragma comment(lib, "ws2_32.lib")
  11.  
  12. using namespace std;
  13.  
  14. DWORD WINAPI client_processing(LPVOID client_socket) {
  15.     SOCKET my_socket;
  16.     my_socket = ((SOCKET *)client_socket)[0];
  17.     char buff[1024];
  18.     recv(my_socket, &buff[0], sizeof(buff) - 1, 0);
  19.     string s(buff), is_pal = "1";
  20.     for (int i = 0, l = s.length(); i < l / 2; i++) {
  21.         if (s[i] != s[l - 1 - i]) {
  22.             is_pal[0] = '0';
  23.             break;
  24.         }
  25.     }
  26.     send(my_socket, is_pal.c_str(), is_pal.length(), 0);
  27.     closesocket(my_socket);
  28.     return 0;
  29. }
  30.  
  31. int _tmain(int argc, _TCHAR* argv[])
  32. {
  33.     char buff[1024];
  34.     WSAStartup(0x0202, (WSADATA *) &buff);
  35.     SOCKET my_socket;
  36.     my_socket = socket(AF_INET, SOCK_STREAM, 0);
  37.     sockaddr_in local_addr;
  38.     local_addr.sin_family = AF_INET;
  39.     local_addr.sin_port = htons(15000);
  40.     bind(my_socket, (sockaddr *) &local_addr, sizeof(local_addr));
  41.     //listen(my_socket, 16);
  42.     if (listen(my_socket, 0x100))
  43.     {
  44.         // Ошибка
  45.         int t = WSAGetLastError();
  46.         printf("Error listen %d\n", WSAGetLastError());
  47.         closesocket(my_socket);
  48.         WSACleanup();
  49.         return  1;
  50.     }
  51.     SOCKET client_socket;
  52.     sockaddr_in client_addr;
  53.     int t = sizeof(client_addr);
  54.     client_socket = accept(my_socket, (sockaddr *)&client_addr, &t);
  55.     /*while (client_socket = accept(my_socket, (sockaddr *) &client_addr, (int *) sizeof(client_addr))) {
  56.         DWORD threadID;
  57.         CreateThread(NULL, NULL, client_processing, &client_socket, NULL, &threadID);
  58.     }*/
  59.     return 0;
  60. }
Advertisement
Add Comment
Please, Sign In to add comment