From 95fa1f4bbd4f1b757e05236d58aec9802a218973 Mon Sep 17 00:00:00 2001 From: Jocke Date: Wed, 10 Feb 2016 20:10:20 +0100 Subject: [PATCH] Connect Fix for TCP Client --- src/Engine/Network/TCPClient.cpp | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/src/Engine/Network/TCPClient.cpp b/src/Engine/Network/TCPClient.cpp index 21bb653f..703e4cbe 100644 --- a/src/Engine/Network/TCPClient.cpp +++ b/src/Engine/Network/TCPClient.cpp @@ -19,16 +19,25 @@ void TCPClient::Connect(std::string playerName, std::string address, int port) Send(packet); LOG_INFO("Connect message sent again!"); } - return; + else { + boost::system::error_code error = boost::asio::error::host_not_found; + m_Socket->connect(m_Endpoint, error); + if (!error) { + m_IsConnected = true; + Packet packet(MessageType::Connect, m_SendPacketID); + packet.WriteString(playerName); + Send(packet); + LOG_INFO("Connect message sent!"); + } + } } - if (!m_IsConnected) { + else if (!m_IsConnected) { boost::system::error_code error = boost::asio::error::host_not_found; m_Endpoint = tcp::endpoint(boost::asio::ip::address::from_string(address), port); - m_Socket = std::unique_ptr(new tcp::socket(m_IOService, m_Endpoint)); + m_Socket = std::unique_ptr(new tcp::socket(m_IOService)); + m_Socket->connect(m_Endpoint, error); tcp::no_delay option(true); m_Socket->set_option(option); - m_Socket->close(); - m_Socket->connect(m_Endpoint, error); LOG_INFO(error.message().c_str()); if (!error) { m_IsConnected = true;