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)
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) {
std::cerr << "Failed to create socket !\n";
return false;
}
struct addrinfo* result = nullptr;
hints.ai_family = AF_INET;
hints.ai_socktype = SOCK_STREAM;
@@ -39,11 +37,18 @@ bool TCPSocket::Connect(const IPAddress& address, unsigned short port) {
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;
for (ptr = result; ptr != nullptr; ptr = ptr->ai_next) {
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;
}
m_RemoteAddr = *sockaddr;
break;
}

View File

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