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;