Как подключить клиента к серверу?

141
24 июля 2019, 10:50

Не могу подключить клиента C++ к серверу на C Когда я запускаю сервер на одной машине, выводит start server, потом я просто скопировал всю папку с исходниками и release на внешний жесткий диск, запустил на ноутбуке, который подключен к одному роутеру с сервером, если открыть release, то пишет Error: failed connect to server. Сервер и ноутбук имеют общий IP Клиент

    #pragma comment(lib, "ws2_32.lib")
    #include <winsock2.h>
    #include <iostream>
    #include <WS2tcpip.h>
    #pragma warning(disable: 4996)
    using namespace std;
    SOCKET Connection;
    void ClientHandler() {
    char msg[256];
    while (true) {
    recv(Connection, msg, sizeof(msg), NULL);
    std::cout << msg << std::endl;
        }
    }
    int main() {
    WSAData wadata;
    WORD DLLversion = MAKEWORD(2, 1);
    if (WSAStartup(DLLversion, &wadata) != 0) {
    cout << "Error#1";
    exit(1);
    }
    SOCKADDR_IN addr;
    addr.sin_addr.s_addr = inet_addr("Ip сервера");
    addr.sin_port = htons(2812);
    addr.sin_family = AF_INET;
    Connection = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
    if (connect(Connection, (SOCKADDR*)&addr, sizeof(addr)) != 0) {
    std::cout << "Error: failed connect to server.\n";
    return 1;
    }
    std::cout << "Connected!\n";
    CreateThread(NULL, NULL, (LPTHREAD_START_ROUTINE)ClientHandler, NULL, 
    NULL, NULL);
    char msg1[256];
    while (true) {
    std::cin.getline(msg1, sizeof(msg1));
    send(Connection, msg1, sizeof(msg1), NULL);
    Sleep(10);
    }
    system("pause");
    return 0;
    }

Сервер

    #pragma comment(lib, "ws2_32.lib")
    #include <Winsock2.h>
    #include <iostream>
    #include <WS2tcpip.h>
    SOCKET Connect;
    SOCKET* Connections;
    SOCKET Listen;
    int ClientCount = 0;
    void SendMessagea(int ID) {
    char* buffer = new char[1024];
    for (;; Sleep(75)) {
    memset(&buffer, 0, sizeof(buffer));
    if (recv(Connections[ID], buffer, 1024, NULL)) {
        printf(buffer);
        printf("\n");
        for (int i = 0; i <= ClientCount; i++) {
            send(Connections[i], buffer, 1024, NULL);
        }
        }
      }
    delete buffer;
     }
    int main() {
        setlocale(0, "");
        WSAData wadata;
        WORD DLLVERSION = MAKEWORD(2, 1);
        if (WSAStartup(DLLVERSION, &wadata) != 0) return 1;
        struct addrinfo hints;
        struct addrinfo* result;
        Connections = (SOCKET*)calloc(64, sizeof(SOCKET));
        ZeroMemory(&hints, sizeof(hints));
        hints.ai_family = AF_INET;
        hints.ai_flags = AI_PASSIVE;
        hints.ai_socktype = SOCK_STREAM;
        hints.ai_protocol = IPPROTO_TCP;
        getaddrinfo(NULL, "2812", &hints, &result);
        Listen = socket(result->ai_family, result->ai_socktype, result-                
        >ai_protocol);
        bind(Listen, result->ai_addr, result->ai_addrlen);
        listen(Listen, SOMAXCONN);
        freeaddrinfo(result);
        printf("Start server...");
        char m_connect[] = "Connect...;;;5";
        for (;;Sleep(75)) {
            if (Connect == accept(Listen, NULL, NULL)) {
        printf("Client Connected");
        Connections[ClientCount] = Connect;
        send(Connections[ClientCount], m_connect, strlen(m_connect), NULL);
        ClientCount++;
        CreateThread(NULL, NULL, (LPTHREAD_START_ROUTINE)SendMessagea,         
        LPVOID(ClientCount - 1), NULL, 
        NULL);
           }
       }
       return 0;
        }
READ ALSO
Объявление двумерного вектора в шапке .h

Объявление двумерного вектора в шапке .h

когда перемещаю вh файл объявление вектора двумерного:

132
Ошибка при сборке драйвера MySql на Qt.

Ошибка при сборке драйвера MySql на Qt.

Все делаю по этой инструкции, но выходит ошибка qtsqldrivers-configpri: No such file or directoryЭтого файла у меня вообще нет на компьютере

154
CMake, add_subdirectory и наследование окружения

CMake, add_subdirectory и наследование окружения

Делаю проект с компиляцией под несколько платформ на c++Некоторые файлы нужно прогнать утилитой (для простоты понимания скажем, что это транспилятор)

148