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 parsePlayerConnected(Packet& packet);
|
||||
void parsePing();
|
||||
void parseHeartbeat(Packet& packet);
|
||||
void parseHeartbeat(Packet& packet, PlayerDefinition);
|
||||
void parseKick();
|
||||
void parsePlayersSpawned(Packet& packet);
|
||||
void parseEntityDeletion(Packet& packet);
|
||||
|
||||
@@ -16,6 +16,8 @@ public:
|
||||
void Send(Packet & packet, PlayerDefinition & playerDefinition);
|
||||
void Send(Packet & packet);
|
||||
void Disconnect();
|
||||
int Port() { return acceptor->local_endpoint().port(); }
|
||||
std::string Address();
|
||||
private:
|
||||
// TCP logic
|
||||
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);
|
||||
m_Heartbeat.Receive(packet, localArea);
|
||||
if(packet.GetMessageType() == MessageType::Heartbeat) {
|
||||
parseHeartbeat(packet);
|
||||
parseHeartbeat(packet, localArea);
|
||||
}
|
||||
}
|
||||
if (m_IsConnected) {
|
||||
@@ -128,9 +128,6 @@ void Client::parseMessageType(Packet& packet)
|
||||
case MessageType::ComponentDeleted:
|
||||
parseComponentDeletion(packet);
|
||||
break;
|
||||
case MessageType::Heartbeat:
|
||||
parseHeartbeat(packet);
|
||||
break;
|
||||
case MessageType::OnPlayerDamage:
|
||||
parsePlayerDamage(packet);
|
||||
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
|
||||
packet.ReadPrimitive<int>();
|
||||
@@ -194,7 +191,12 @@ void Client::parseHeartbeat(Packet& packet)
|
||||
packet.ReadPrimitive<int>();
|
||||
std::string serverName = packet.ReadString();
|
||||
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()
|
||||
|
||||
@@ -241,8 +241,10 @@ void Server::sendPing()
|
||||
void Server::sendHeartBeat()
|
||||
{
|
||||
Packet packet(MessageType::Heartbeat);
|
||||
packet.WriteString("This is a servername"); // server name
|
||||
packet.WriteString("Bob"); // server name
|
||||
packet.WritePrimitive<int>(m_ConnectedPlayers.size());
|
||||
packet.WriteString(m_Reliable.Address());
|
||||
packet.WritePrimitive<int>(m_Reliable.Port());
|
||||
m_Heartbeat.Send(packet);
|
||||
}
|
||||
|
||||
|
||||
@@ -74,7 +74,16 @@ void TCPServer::Send(Packet & packet)
|
||||
|
||||
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)
|
||||
|
||||
Reference in New Issue
Block a user