Не могу подключить клиента 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;
}
Виртуальный выделенный сервер (VDS) становится отличным выбором
Все делаю по этой инструкции, но выходит ошибка qtsqldrivers-configpri: No such file or directoryЭтого файла у меня вообще нет на компьютере
Делаю проект с компиляцией под несколько платформ на c++Некоторые файлы нужно прогнать утилитой (для простоты понимания скажем, что это транспилятор)