diff --git a/VoidNetVS/VoidNetVS/Release/VoidNetVS.tlog/CL.command.1.tlog b/VoidNetVS/VoidNetVS/Release/VoidNetVS.tlog/CL.command.1.tlog index ae829d4..76b2a96 100644 Binary files a/VoidNetVS/VoidNetVS/Release/VoidNetVS.tlog/CL.command.1.tlog and b/VoidNetVS/VoidNetVS/Release/VoidNetVS.tlog/CL.command.1.tlog differ diff --git a/VoidNetVS/VoidNetVS/Release/VoidNetVS.tlog/CL.read.1.tlog b/VoidNetVS/VoidNetVS/Release/VoidNetVS.tlog/CL.read.1.tlog index d97acd3..1d6b058 100644 Binary files a/VoidNetVS/VoidNetVS/Release/VoidNetVS.tlog/CL.read.1.tlog and b/VoidNetVS/VoidNetVS/Release/VoidNetVS.tlog/CL.read.1.tlog differ diff --git a/VoidNetVS/VoidNetVS/Release/VoidNetVS.tlog/CL.write.1.tlog b/VoidNetVS/VoidNetVS/Release/VoidNetVS.tlog/CL.write.1.tlog index c48c6ab..18eafe6 100644 Binary files a/VoidNetVS/VoidNetVS/Release/VoidNetVS.tlog/CL.write.1.tlog and b/VoidNetVS/VoidNetVS/Release/VoidNetVS.tlog/CL.write.1.tlog differ diff --git a/VoidNetVS/VoidNetVS/Release/VoidNetVS.tlog/unsuccessfulbuild b/VoidNetVS/VoidNetVS/Release/VoidNetVS.tlog/unsuccessfulbuild new file mode 100644 index 0000000..e69de29 diff --git a/VoidNetVS/VoidNetVS/VoidNetVS.vcxproj b/VoidNetVS/VoidNetVS/VoidNetVS.vcxproj index 7cacbc9..e4924d7 100644 --- a/VoidNetVS/VoidNetVS/VoidNetVS.vcxproj +++ b/VoidNetVS/VoidNetVS/VoidNetVS.vcxproj @@ -38,18 +38,22 @@ - false + true - false + true - false + true + + + + true diff --git a/VoidNetVS/VoidNetVS/VoidNetVS.vcxproj.filters b/VoidNetVS/VoidNetVS/VoidNetVS.vcxproj.filters index 527b7fc..3d76a3a 100644 --- a/VoidNetVS/VoidNetVS/VoidNetVS.vcxproj.filters +++ b/VoidNetVS/VoidNetVS/VoidNetVS.vcxproj.filters @@ -89,6 +89,12 @@ src + + src + + + src + diff --git a/include/Defs.hpp b/include/Defs.hpp index 2d401a6..dd405ee 100644 --- a/include/Defs.hpp +++ b/include/Defs.hpp @@ -239,10 +239,10 @@ enum ConnectionCode enum InternalTags { - CONNECT = 254, - DISCONNECT = 255, + ConnectTag = 254, + DisconnectTag = 255, }; -#define IS_HANDSHAKE(name) name.subject == 1 && (name.tag == DISCONNECT || name.tag == CONNECT || name.tag == ConnectionCode::Accept || name.tag == ConnectionCode::Close || name.tag == ConnectionCode::Reject) +#define IS_HANDSHAKE(name) name.subject == 1 && (name.tag == DisconnectTag || name.tag == ConnectTag || name.tag == Accept || name.tag == Close || name.tag == Reject) #endif // DEFS_HPP \ No newline at end of file diff --git a/include/TcpClient.hpp b/include/TcpClient.hpp index 382dcff..fc86d8b 100644 --- a/include/TcpClient.hpp +++ b/include/TcpClient.hpp @@ -14,7 +14,6 @@ struct TcpClient { - TcpClient(); TcpClient(const SOCKET &socket); TcpClient(const std::string &ip); TcpClient(const std::string &ip, uint16 port = default_client_port); diff --git a/include/UdpClient.hpp b/include/UdpClient.hpp index e95709b..1c34328 100644 --- a/include/UdpClient.hpp +++ b/include/UdpClient.hpp @@ -5,9 +5,15 @@ #pragma once #endif +#include "Defs.hpp" +#include "NetworkMessage.hpp" + +#include +#include + struct UdpClient { - + }; #endif diff --git a/src/NetworkMessage.cpp b/src/NetworkMessage.cpp index 123d3b7..49a8965 100644 --- a/src/NetworkMessage.cpp +++ b/src/NetworkMessage.cpp @@ -81,7 +81,7 @@ const NetworkMessage &NetworkMessage::DecodeMessage(const NetworkBuffer &buffer) message.destination_id = Utility::BitConverter::ToUint16(buffer.body, 4); message.tag = buffer.body[6]; message.subject = Utility::BitConverter::ToUint8(buffer.body, 7); - message.valid = message.sender != -2 && message.tag != CONNECT && message.tag != DISCONNECT; + message.valid = message.sender != -2 && message.tag != ConnectTag && message.tag != DisconnectTag; if (Utility::BitConverter::ToInt32(buffer.header) < 9) return message; void *object; @@ -94,8 +94,7 @@ const NetworkMessage &NetworkMessage::DecodeMessage(const NetworkBuffer &buffer) message.sender = Utility::BitConverter::ToUint16(buffer.body, 1); message.tag = Utility::BitConverter::ToUint8(buffer.body, 3); message.subject = 1; - message.valid = message.sender != -2 && (message.tag == DISCONNECT || message.tag == CONNECT || message.tag == ConnectionCode::Accept || - message.tag == ConnectionCode::Close || message.tag == ConnectionCode::Reject); + message.valid = message.sender != -2 && IS_HANDSHAKE(message); return message; break; } diff --git a/src/TcpClient.cpp b/src/TcpClient.cpp index 0abd2d2..091e7f8 100644 --- a/src/TcpClient.cpp +++ b/src/TcpClient.cpp @@ -4,10 +4,6 @@ #include #include -TcpClient::TcpClient() -{ -} - TcpClient::TcpClient(const std::string &ip) : port(default_client_port) { initialize(ip); @@ -58,9 +54,9 @@ void TcpClient::receive_data(TcpClient *client) { if (IS_HANDSHAKE(message)) { - if (message.tag == CONNECT) // some user has connected - not us, never + if (message.tag == ConnectTag) // some user has connected - not us, never std::async(std::launch::async, client->OnConnect, message.sender); - else if (message.tag == DISCONNECT || message.tag == ConnectionCode::Close) // some user has disconnected + else if (message.tag == DisconnectTag || message.tag == Close) // some user has disconnected std::async(std::launch::async, client->OnDisconnect, message.sender); } else diff --git a/src/TcpClientWindows.cpp b/src/TcpClientWindows.cpp index 95a28ac..525d46d 100644 --- a/src/TcpClientWindows.cpp +++ b/src/TcpClientWindows.cpp @@ -12,12 +12,10 @@ TcpClient::TcpClient(const SOCKET & socket) bool TcpClient::initialize(const std::string &ip, uint16 port) { - if (ip.size() == 0 || std::count(ip.begin(), ip.end(), '.') != 4) + if (ip.size() == 0 || std::count(ip.begin(), ip.end(), '.') != 4 || port == 0) return false; - if (port == 0) - return false; ZeroMemory(&hints, sizeof(hints)); - hints.ai_family = AF_UNSPEC; + hints.ai_family = AF_INET; hints.ai_socktype = SOCK_STREAM; hints.ai_protocol = IPPROTO_TCP; @@ -82,7 +80,7 @@ bool TcpClient::Connect() NetworkMessage message(receive_data_array()); if (IS_HANDSHAKE(message)) { - if (message.tag == ConnectionCode::Accept) + if (message.tag == Accept) { receive = true; OnConnect(message.sender); diff --git a/src/TcpServer.cpp b/src/TcpServer.cpp index 5963aa3..31a990b 100644 --- a/src/TcpServer.cpp +++ b/src/TcpServer.cpp @@ -80,7 +80,7 @@ void TcpServer::SendMessage(const NetworkMessage & message) } case Server: // this will only send the message to the server { - if (message.tag == DISCONNECT) + if (message.tag == DisconnectTag) CloseSocket(message.sender); for (uint16 i = 0; i < OnMessageFunctions.size(); i++) OnMessageFunctions[i](message); @@ -152,13 +152,13 @@ void TcpServer::add_to_clients_list(TcpClient & client_socket) void TcpServer::RejectConnection(TcpClient &client) { - Handshake handshake(client.GetID(), ConnectionCode::Reject, ID); + Handshake handshake(client.GetID(), Reject, ID); SendMessage(Handshake::HandshakeToNetworkMessage(handshake)); } void TcpServer::AcceptConnection(uint16 id) { - Handshake handshake(id, ConnectionCode::Accept, AllAndMe); + Handshake handshake(id, Accept, AllAndMe); SendMessage(Handshake::HandshakeToNetworkMessage(handshake)); } diff --git a/src/UdpClient.cpp b/src/UdpClient.cpp new file mode 100644 index 0000000..7b8cb80 --- /dev/null +++ b/src/UdpClient.cpp @@ -0,0 +1,5 @@ +#include "UdpClient.hpp" + +#ifdef _MSC_VER +#include "UdpClientWindows.cpp" +#endif \ No newline at end of file diff --git a/src/UdpClientWindows.cpp b/src/UdpClientWindows.cpp new file mode 100644 index 0000000..8c55758 --- /dev/null +++ b/src/UdpClientWindows.cpp @@ -0,0 +1 @@ +#include "UdpClient.hpp" diff --git a/src/VoidNetClient.cpp b/src/VoidNetClient.cpp index dde69e3..0357647 100644 --- a/src/VoidNetClient.cpp +++ b/src/VoidNetClient.cpp @@ -37,7 +37,7 @@ void VoidNetClientAPI::SendMessageToAllAndMe(byte tag, byte subject, void *data) void VoidNetClientAPI::SendMessage(byte distribution_mode, uint16 destination_id, byte tag, byte subject, void *data) { - if (tag != CONNECT && tag != DISCONNECT) + if (tag != ConnectTag && tag != DisconnectTag) { NetworkMessage message; message.tag = tag;