Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // CN-lab1-server.cpp: определяет точку входа для консольного приложения.
- //
- #include "stdafx.h"
- #include <winsock2.h>
- #include <iostream>
- #include <windows.h>
- #include <string>
- #pragma comment(lib, "ws2_32.lib")
- using namespace std;
- DWORD WINAPI client_processing(LPVOID client_socket) {
- SOCKET my_socket;
- my_socket = ((SOCKET *)client_socket)[0];
- char buff[1024];
- recv(my_socket, &buff[0], sizeof(buff) - 1, 0);
- string s(buff), is_pal = "1";
- for (int i = 0, l = s.length(); i < l / 2; i++) {
- if (s[i] != s[l - 1 - i]) {
- is_pal[0] = '0';
- break;
- }
- }
- send(my_socket, is_pal.c_str(), is_pal.length(), 0);
- closesocket(my_socket);
- return 0;
- }
- int _tmain(int argc, _TCHAR* argv[])
- {
- char buff[1024];
- WSAStartup(0x0202, (WSADATA *) &buff);
- SOCKET my_socket;
- my_socket = socket(AF_INET, SOCK_STREAM, 0);
- sockaddr_in local_addr;
- local_addr.sin_family = AF_INET;
- local_addr.sin_port = htons(15000);
- bind(my_socket, (sockaddr *) &local_addr, sizeof(local_addr));
- //listen(my_socket, 16);
- if (listen(my_socket, 0x100))
- {
- // Ошибка
- int t = WSAGetLastError();
- printf("Error listen %d\n", WSAGetLastError());
- closesocket(my_socket);
- WSACleanup();
- return 1;
- }
- SOCKET client_socket;
- sockaddr_in client_addr;
- int t = sizeof(client_addr);
- client_socket = accept(my_socket, (sockaddr *)&client_addr, &t);
- /*while (client_socket = accept(my_socket, (sockaddr *) &client_addr, (int *) sizeof(client_addr))) {
- DWORD threadID;
- CreateThread(NULL, NULL, client_processing, &client_socket, NULL, &threadID);
- }*/
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment