Updated the serverlist, now prints adress and port of the server.
This commit is contained in:
@@ -83,7 +83,7 @@ public:
|
|||||||
void parseTCPConnect(Packet& packet);
|
void parseTCPConnect(Packet& packet);
|
||||||
void parsePlayerConnected(Packet& packet);
|
void parsePlayerConnected(Packet& packet);
|
||||||
void parsePing();
|
void parsePing();
|
||||||
void parseHeartbeat(Packet& packet);
|
void parseHeartbeat(Packet& packet, PlayerDefinition);
|
||||||
void parseKick();
|
void parseKick();
|
||||||
void parsePlayersSpawned(Packet& packet);
|
void parsePlayersSpawned(Packet& packet);
|
||||||
void parseEntityDeletion(Packet& packet);
|
void parseEntityDeletion(Packet& packet);
|
||||||
|
|||||||
@@ -16,6 +16,8 @@ public:
|
|||||||
void Send(Packet & packet, PlayerDefinition & playerDefinition);
|
void Send(Packet & packet, PlayerDefinition & playerDefinition);
|
||||||
void Send(Packet & packet);
|
void Send(Packet & packet);
|
||||||
void Disconnect();
|
void Disconnect();
|
||||||
|
int Port() { return acceptor->local_endpoint().port(); }
|
||||||
|
std::string Address();
|
||||||
private:
|
private:
|
||||||
// TCP logic
|
// TCP logic
|
||||||
boost::asio::io_service m_IOService;
|
boost::asio::io_service m_IOService;
|
||||||
|
|||||||
@@ -72,7 +72,7 @@ void Client::Update()
|
|||||||
localArea.Endpoint = boost::asio::ip::udp::endpoint(boost::asio::ip::address().from_string("127.0.0.1"), 13);
|
localArea.Endpoint = boost::asio::ip::udp::endpoint(boost::asio::ip::address().from_string("127.0.0.1"), 13);
|
||||||
m_Heartbeat.Receive(packet, localArea);
|
m_Heartbeat.Receive(packet, localArea);
|
||||||
if(packet.GetMessageType() == MessageType::Heartbeat) {
|
if(packet.GetMessageType() == MessageType::Heartbeat) {
|
||||||
parseHeartbeat(packet);
|
parseHeartbeat(packet, localArea);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (m_IsConnected) {
|
if (m_IsConnected) {
|
||||||
@@ -128,9 +128,6 @@ void Client::parseMessageType(Packet& packet)
|
|||||||
case MessageType::ComponentDeleted:
|
case MessageType::ComponentDeleted:
|
||||||
parseComponentDeletion(packet);
|
parseComponentDeletion(packet);
|
||||||
break;
|
break;
|
||||||
case MessageType::Heartbeat:
|
|
||||||
parseHeartbeat(packet);
|
|
||||||
break;
|
|
||||||
case MessageType::OnPlayerDamage:
|
case MessageType::OnPlayerDamage:
|
||||||
parsePlayerDamage(packet);
|
parsePlayerDamage(packet);
|
||||||
break;
|
break;
|
||||||
@@ -186,7 +183,7 @@ void Client::parsePing()
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void Client::parseHeartbeat(Packet& packet)
|
void Client::parseHeartbeat(Packet& packet, PlayerDefinition pd)
|
||||||
{
|
{
|
||||||
// Pop size, message type, and ID
|
// Pop size, message type, and ID
|
||||||
packet.ReadPrimitive<int>();
|
packet.ReadPrimitive<int>();
|
||||||
@@ -194,7 +191,12 @@ void Client::parseHeartbeat(Packet& packet)
|
|||||||
packet.ReadPrimitive<int>();
|
packet.ReadPrimitive<int>();
|
||||||
std::string serverName = packet.ReadString();
|
std::string serverName = packet.ReadString();
|
||||||
int playersConnected = packet.ReadPrimitive<int>();
|
int playersConnected = packet.ReadPrimitive<int>();
|
||||||
LOG_INFO("Serverlist\nName\tPlayers\n%s\t%i\n", serverName.c_str(), playersConnected);
|
std::string address = packet.ReadString();
|
||||||
|
int port = packet.ReadPrimitive<int>();
|
||||||
|
//TODO: save these to some kind of list which can be represented to the player
|
||||||
|
//TODO: This should not happen when a client is connected to a server
|
||||||
|
|
||||||
|
LOG_INFO("Serverlist\nName\tPlayers\tIP\t\tPort\n%s\t%i\t%s\t%i\n", serverName.c_str(), playersConnected, address, port);
|
||||||
}
|
}
|
||||||
|
|
||||||
void Client::parseKick()
|
void Client::parseKick()
|
||||||
|
|||||||
@@ -241,8 +241,10 @@ void Server::sendPing()
|
|||||||
void Server::sendHeartBeat()
|
void Server::sendHeartBeat()
|
||||||
{
|
{
|
||||||
Packet packet(MessageType::Heartbeat);
|
Packet packet(MessageType::Heartbeat);
|
||||||
packet.WriteString("This is a servername"); // server name
|
packet.WriteString("Bob"); // server name
|
||||||
packet.WritePrimitive<int>(m_ConnectedPlayers.size());
|
packet.WritePrimitive<int>(m_ConnectedPlayers.size());
|
||||||
|
packet.WriteString(m_Reliable.Address());
|
||||||
|
packet.WritePrimitive<int>(m_Reliable.Port());
|
||||||
m_Heartbeat.Send(packet);
|
m_Heartbeat.Send(packet);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -74,7 +74,16 @@ void TCPServer::Send(Packet & packet)
|
|||||||
|
|
||||||
void TCPServer::Disconnect()
|
void TCPServer::Disconnect()
|
||||||
{
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
std::string TCPServer::Address()
|
||||||
|
{
|
||||||
|
boost::asio::ip::tcp::resolver resolver(m_IOService);
|
||||||
|
boost::asio::ip::tcp::resolver::query query(boost::asio::ip::tcp::v4(), boost::asio::ip::host_name(), "");
|
||||||
|
boost::asio::ip::tcp::resolver::iterator it = resolver.resolve(query);
|
||||||
|
boost::asio::ip::tcp::endpoint endpoint = *it;
|
||||||
|
return endpoint.address().to_string().c_str();
|
||||||
}
|
}
|
||||||
|
|
||||||
void TCPServer::Receive(Packet & packet, PlayerDefinition & playerDefinition)
|
void TCPServer::Receive(Packet & packet, PlayerDefinition & playerDefinition)
|
||||||
|
|||||||
Reference in New Issue
Block a user