Network is now working as udp or tcp. Next step is making the hybrid.

This commit is contained in:
Jocke
2016-02-09 19:14:56 +01:00
parent fccd8c64e7
commit d2ed293183
12 changed files with 225 additions and 190 deletions
+14 -8
View File
@@ -1,25 +1,31 @@
#ifndef UDPServer_h__
#define UDPServer_h__
#include "Server.h"
#include "NetworkServer.h"
#include <boost/asio/ip/udp.hpp>
//
//virtual void AcceptNewConnections() = 0;
//virtual void Receive(Packet & packet, PlayerDefinition & playerDefinition) = 0;
//virtual void Send(Packet & packet, PlayerDefinition & playerDefinition) = 0;
//virtual void Send(Packet & packet) = 0;
class UDPServer : public Server
class UDPServer : public NetworkServer
{
public:
UDPServer();
~UDPServer();
void AcceptNewConnections(int& nextPlayerID, std::map<PlayerID, PlayerDefinition>& connectedPlayers);
void Receive(Packet & packet, PlayerDefinition & playerDefinition);
//void parseConnect(Packet & packet, PlayerDefinition & playerDefinition);
void Send(Packet & packet, PlayerDefinition & playerDefinition);
void Send(Packet & packet);
bool IsSocketAvailable();
private:
// UDP logic
boost::asio::io_service m_IOService;
boost::asio::ip::udp::endpoint m_ReceiverEndpoint;
std::unique_ptr<boost::asio::ip::udp::socket> m_Socket;
void readFromClients();
int receive(char * data);
void parseConnect(Packet & packet);
void send(Packet & packet, PlayerDefinition & playerDefinition);
void send(Packet & packet);
int readBuffer(char* data);
};
#endif