fix: windows connecting

This commit is contained in:
2021-09-20 20:28:15 +02:00
parent 969b2f23a7
commit 175adc2180
2 changed files with 12 additions and 7 deletions

View File

@@ -23,12 +23,10 @@ bool TCPSocket::Connect(const IPAddress& address, unsigned short port) {
if (this->GetStatus() == Connected) if (this->GetStatus() == Connected)
return true; return true;
struct addrinfo hints = { 0 }, * result = nullptr; struct addrinfo hints{};
memset(&hints, 0, sizeof(addrinfo));
if ((m_Handle = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP)) < 0) { struct addrinfo* result = nullptr;
std::cerr << "Failed to create socket !\n";
return false;
}
hints.ai_family = AF_INET; hints.ai_family = AF_INET;
hints.ai_socktype = SOCK_STREAM; hints.ai_socktype = SOCK_STREAM;
@@ -39,11 +37,18 @@ bool TCPSocket::Connect(const IPAddress& address, unsigned short port) {
return false; return false;
} }
if ((m_Handle = ::socket(AF_INET, SOCK_STREAM, IPPROTO_TCP)) < 0) {
std::cerr << "Failed to create socket !\n";
return false;
}
struct addrinfo* ptr = nullptr; struct addrinfo* ptr = nullptr;
for (ptr = result; ptr != nullptr; ptr = ptr->ai_next) { for (ptr = result; ptr != nullptr; ptr = ptr->ai_next) {
struct sockaddr_in* sockaddr = (struct sockaddr_in*)ptr->ai_addr; struct sockaddr_in* sockaddr = (struct sockaddr_in*)ptr->ai_addr;
if (::connect(m_Handle, (struct sockaddr*)sockaddr, sizeof(struct sockaddr_in)) != 0) if (::connect(m_Handle, (struct sockaddr*)sockaddr, sizeof(struct sockaddr_in)) != 0) {
std::cerr << "Failed to connect with this address !\n";
continue; continue;
}
m_RemoteAddr = *sockaddr; m_RemoteAddr = *sockaddr;
break; break;
} }

View File

@@ -145,7 +145,7 @@ void renderMainMenu() {
if (!startServer(port, worldFilePath)) { if (!startServer(port, worldFilePath)) {
triedToCreate = true; triedToCreate = true;
} else { } else {
client->connect("localhost", port); client->connect("127.0.0.1", port);
} }
} }
if (triedToCreate) if (triedToCreate)