Merge remote-tracking branch 'origin/DynamicPacketBuffer' into HUDDesync

# Conflicts:
#	include/Engine/Network/TCPServer.h
#	src/Engine/Network/TCPServer.cpp
This commit is contained in:
stiffly
2016-02-22 17:39:48 +01:00
14 changed files with 263 additions and 50 deletions
+4 -1
View File
@@ -9,13 +9,16 @@ typedef unsigned int PacketID;
class NetworkClient
{
public:
NetworkClient();
virtual ~NetworkClient();
virtual void Connect(std::string playerName, std::string address, int port) = 0;
virtual void Disconnect() = 0;
virtual void Receive(Packet& packet) = 0;
virtual void Send(Packet & packet) = 0;
virtual bool IsSocketAvailable() = 0;
protected:
char m_ReadBuffer[BUFFERSIZE] = { 0 };
char* m_ReadBuffer;
unsigned int m_BufferSize = BUFFERSIZE;
};
#endif
+4 -1
View File
@@ -10,12 +10,15 @@ typedef unsigned int PacketID;
class NetworkServer
{
public:
NetworkServer();
virtual ~NetworkServer();
virtual void AcceptNewConnections(int& nextPlayerID, std::map<PlayerID, PlayerDefinition>& connectedPlayers) = 0;
virtual void Receive(Packet & packet, PlayerDefinition & playerDefinition) = 0;
virtual void Send(Packet & packet, PlayerDefinition & playerDefinition) = 0;
virtual void Send(Packet & packet) = 0;
protected:
char m_ReadBuffer[BUFFERSIZE] = { 0 };
char* m_ReadBuffer;
unsigned int m_BufferSize = BUFFERSIZE;
};
#endif
+3 -2
View File
@@ -56,7 +56,7 @@ private:
std::vector<Events::InputCommand> m_InputCommandsToBroadcast;
//Timers
std::clock_t m_StartPingTime;
// Packet loss logic
PacketID m_PacketID = 0;
PacketID m_PreviousPacketID = 0;
@@ -66,6 +66,7 @@ private:
void reliableBroadcast(Packet& packet);
void unreliableBroadcast(Packet& packet);
void sendSnapshot();
void addPlayersToPacket(Packet& packet, EntityID entityID);
void addChildrenToPacket(Packet& packet, EntityID entityID);
void addInputCommandsToPacket(Packet& packet);
void sendPing();
@@ -79,7 +80,7 @@ private:
void parsePlayerTransform(Packet& packet);
void parseOnInputCommand(Packet& packet);
void parseClientPing();
void parsePing();
void parsePing();
void parseUDPConnect(Packet & packet);
void parseTCPConnect(Packet & packet);
void parseDisconnect();
+1 -1
View File
@@ -20,7 +20,7 @@ private:
boost::asio::ip::tcp::endpoint m_Endpoint;
boost::asio::io_service m_IOService;
std::unique_ptr<boost::asio::ip::tcp::socket> m_Socket;
size_t readBuffer(char* data);
size_t readBuffer();
PacketID m_SendPacketID = 0;
bool m_IsConnected = false;
};
+1 -1
View File
@@ -28,7 +28,7 @@ private:
void handle_accept(boost::shared_ptr<boost::asio::ip::tcp::socket> socket,
int& nextPlayerID, std::map<PlayerID, PlayerDefinition>& connectedPlayers,
const boost::system::error_code& error);
int readBuffer(char* data, PlayerDefinition& playerDefinition);
int readBuffer(PlayerDefinition& playerDefinition);
int GetPort();
std::string GetAddress();
int m_Port = 0;
+1 -1
View File
@@ -21,7 +21,7 @@ private:
boost::asio::io_service m_IOService;
boost::asio::ip::udp::endpoint m_ReceiverEndpoint;
boost::shared_ptr<boost::asio::ip::udp::socket> m_Socket;
int readBuffer(char* data);
int readBuffer();
PacketID m_SendPacketID = 0;
};
+1 -1
View File
@@ -22,7 +22,7 @@ private:
boost::asio::io_service m_IOService;
boost::asio::ip::udp::endpoint m_ReceiverEndpoint;
std::unique_ptr<boost::asio::ip::udp::socket> m_Socket;
int readBuffer(char* data);
int readBuffer();
};
#endif