removed debug info.
This commit is contained in:
@@ -140,7 +140,7 @@ private:
|
|||||||
std::vector<ServerInfo> m_Serverlist;
|
std::vector<ServerInfo> m_Serverlist;
|
||||||
bool m_SearchingForServers = false;
|
bool m_SearchingForServers = false;
|
||||||
std::clock_t m_StartSearchTime;
|
std::clock_t m_StartSearchTime;
|
||||||
double m_SearchingTime = 2000; // Config I guess
|
double m_SearchingTime = 200; // Config I guess
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@@ -27,7 +27,7 @@ private:
|
|||||||
boost::asio::io_service m_IOService;
|
boost::asio::io_service m_IOService;
|
||||||
boost::asio::ip::udp::endpoint m_ReceiverEndpoint;
|
boost::asio::ip::udp::endpoint m_ReceiverEndpoint;
|
||||||
boost::shared_ptr<boost::asio::ip::udp::socket> m_Socket;
|
boost::shared_ptr<boost::asio::ip::udp::socket> m_Socket;
|
||||||
int lastReceivedSnapshotGroup = 0;
|
int m_LastReceivedSnapshotGroup = 0;
|
||||||
int readBuffer();
|
int readBuffer();
|
||||||
void readPartOfPacket();
|
void readPartOfPacket();
|
||||||
PacketID m_SendPacketID = 0;
|
PacketID m_SendPacketID = 0;
|
||||||
|
|||||||
@@ -381,7 +381,6 @@ void Client::ignoreFields(Packet& packet, const ComponentInfo& componentInfo)
|
|||||||
|
|
||||||
void Client::parseSnapshot(Packet& packet)
|
void Client::parseSnapshot(Packet& packet)
|
||||||
{
|
{
|
||||||
LOG_INFO("Snapshot received");
|
|
||||||
// Read input commands
|
// Read input commands
|
||||||
std::size_t numInputCommands = packet.ReadPrimitive<std::size_t>();
|
std::size_t numInputCommands = packet.ReadPrimitive<std::size_t>();
|
||||||
for (std::size_t i = 0; i < numInputCommands; ++i) {
|
for (std::size_t i = 0; i < numInputCommands; ++i) {
|
||||||
|
|||||||
@@ -164,7 +164,7 @@ void Server::reliableBroadcast(Packet& packet)
|
|||||||
|
|
||||||
void Server::unreliableBroadcast(Packet& packet)
|
void Server::unreliableBroadcast(Packet& packet)
|
||||||
{
|
{
|
||||||
m_Unreliable.SendToConnectedPlayers(packet, m_ConnectedPlayers);
|
m_Unreliable.SendToConnectedPlayers(packet, m_ConnectedPlayers);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Send snapshot fields
|
// Send snapshot fields
|
||||||
@@ -317,7 +317,7 @@ void Server::checkForTimeOuts()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
for (size_t i = 0; i < playersToRemove.size(); i++) {
|
for (int i = playersToRemove.size() - 1; i >= 0; i--) {
|
||||||
disconnect(playersToRemove.at(i));
|
disconnect(playersToRemove.at(i));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -360,6 +360,7 @@ void Server::parseTCPConnect(Packet & packet)
|
|||||||
// Ska vara till lagd i TCPServer receive
|
// Ska vara till lagd i TCPServer receive
|
||||||
PlayerID playerID = getPlayerIDFromEndpoint();
|
PlayerID playerID = getPlayerIDFromEndpoint();
|
||||||
if (playerID == -1) {
|
if (playerID == -1) {
|
||||||
|
LOG_INFO("Server::parseTCPConnect: Not connected");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
// Create a new player
|
// Create a new player
|
||||||
@@ -382,7 +383,7 @@ void Server::parseTCPConnect(Packet & packet)
|
|||||||
Packet connnectPacket(MessageType::Connect, m_ConnectedPlayers.at(playerID).PacketID);
|
Packet connnectPacket(MessageType::Connect, m_ConnectedPlayers.at(playerID).PacketID);
|
||||||
// Write playerID to packet
|
// Write playerID to packet
|
||||||
connnectPacket.WritePrimitive(playerID);
|
connnectPacket.WritePrimitive(playerID);
|
||||||
m_Reliable.Send(connnectPacket);
|
m_Reliable.Send(connnectPacket, m_ConnectedPlayers.at(playerID));
|
||||||
|
|
||||||
Packet firstSnapshot(MessageType::Snapshot);
|
Packet firstSnapshot(MessageType::Snapshot);
|
||||||
addInputCommandsToPacket(firstSnapshot);
|
addInputCommandsToPacket(firstSnapshot);
|
||||||
|
|||||||
@@ -3,25 +3,14 @@
|
|||||||
using namespace boost::asio::ip;
|
using namespace boost::asio::ip;
|
||||||
|
|
||||||
TCPClient::TCPClient()
|
TCPClient::TCPClient()
|
||||||
{
|
{ }
|
||||||
}
|
|
||||||
|
|
||||||
TCPClient::~TCPClient()
|
TCPClient::~TCPClient()
|
||||||
{
|
{ }
|
||||||
}
|
|
||||||
|
|
||||||
bool TCPClient::Connect(std::string playerName, std::string address, int port)
|
bool TCPClient::Connect(std::string playerName, std::string address, int port)
|
||||||
{
|
{
|
||||||
if (m_Socket) {
|
if (!m_Socket) {
|
||||||
if (m_IsConnected) {
|
|
||||||
Packet packet(MessageType::Connect, m_SendPacketID);
|
|
||||||
packet.WriteString(playerName);
|
|
||||||
Send(packet);
|
|
||||||
LOG_INFO("Connect message sent again!");
|
|
||||||
}
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
else if (!m_IsConnected) {
|
|
||||||
boost::system::error_code error = boost::asio::error::host_not_found;
|
boost::system::error_code error = boost::asio::error::host_not_found;
|
||||||
m_Endpoint = tcp::endpoint(boost::asio::ip::address::from_string(address), port);
|
m_Endpoint = tcp::endpoint(boost::asio::ip::address::from_string(address), port);
|
||||||
m_Socket = std::unique_ptr<tcp::socket>(new tcp::socket(m_IOService));
|
m_Socket = std::unique_ptr<tcp::socket>(new tcp::socket(m_IOService));
|
||||||
@@ -36,9 +25,7 @@ bool TCPClient::Connect(std::string playerName, std::string address, int port)
|
|||||||
Send(packet);
|
Send(packet);
|
||||||
LOG_INFO("Connect message sent!");
|
LOG_INFO("Connect message sent!");
|
||||||
return true;
|
return true;
|
||||||
}
|
} else { // If error
|
||||||
// If error
|
|
||||||
else {
|
|
||||||
m_Socket->close();
|
m_Socket->close();
|
||||||
m_Socket = nullptr;
|
m_Socket = nullptr;
|
||||||
return false;
|
return false;
|
||||||
@@ -48,13 +35,9 @@ bool TCPClient::Connect(std::string playerName, std::string address, int port)
|
|||||||
|
|
||||||
void TCPClient::Disconnect()
|
void TCPClient::Disconnect()
|
||||||
{
|
{
|
||||||
if (!m_IsConnected) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
m_Socket->shutdown(boost::asio::ip::tcp::socket::shutdown_both);
|
m_Socket->shutdown(boost::asio::ip::tcp::socket::shutdown_both);
|
||||||
m_Socket->close();
|
m_Socket->close();
|
||||||
m_Socket = nullptr;
|
m_Socket = nullptr;
|
||||||
m_IsConnected = false;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void TCPClient::Receive(Packet& packet)
|
void TCPClient::Receive(Packet& packet)
|
||||||
@@ -92,7 +75,7 @@ size_t TCPClient::readBuffer()
|
|||||||
while (sizeOfPacket > bytesReceived) {
|
while (sizeOfPacket > bytesReceived) {
|
||||||
// Read the rest of the message
|
// Read the rest of the message
|
||||||
bytesReceived += m_Socket->read_some(boost
|
bytesReceived += m_Socket->read_some(boost
|
||||||
::asio::buffer((void*)(m_ReadBuffer), sizeOfPacket - bytesReceived),
|
::asio::buffer((void*)(m_ReadBuffer + bytesReceived), sizeOfPacket - bytesReceived),
|
||||||
error);
|
error);
|
||||||
if (error) {
|
if (error) {
|
||||||
//LOG_ERROR("receive: %s", error.message().c_str());
|
//LOG_ERROR("receive: %s", error.message().c_str());
|
||||||
|
|||||||
@@ -28,7 +28,7 @@ void UDPClient::Disconnect()
|
|||||||
m_Socket->close();
|
m_Socket->close();
|
||||||
m_Socket = nullptr;
|
m_Socket = nullptr;
|
||||||
|
|
||||||
int lastReceivedSnapshotGroup = 0;
|
m_LastReceivedSnapshotGroup = 0;
|
||||||
m_PacketSegmentMap.clear();
|
m_PacketSegmentMap.clear();
|
||||||
PacketID m_SendPacketID = 0;
|
PacketID m_SendPacketID = 0;
|
||||||
}
|
}
|
||||||
@@ -106,7 +106,7 @@ void UDPClient::readPartOfPacket()
|
|||||||
memcpy(&packetGroupIndex, m_ReadBuffer + 2 * sizeof(int), sizeof(int));
|
memcpy(&packetGroupIndex, m_ReadBuffer + 2 * sizeof(int), sizeof(int));
|
||||||
int packetGroupSize = 0;
|
int packetGroupSize = 0;
|
||||||
memcpy(&packetGroupSize, m_ReadBuffer + 3 * sizeof(int), sizeof(int));
|
memcpy(&packetGroupSize, m_ReadBuffer + 3 * sizeof(int), sizeof(int));
|
||||||
LOG_INFO("Packet group: %i. Group index: %i. Group size: %i. Packet size: %i.", packetGroup, packetGroupIndex, packetGroupSize, sizeOfPacket);
|
//LOG_INFO("Packet group: %i. Group index: %i. Group size: %i. Packet size: %i.", packetGroup, packetGroupIndex, packetGroupSize, sizeOfPacket);
|
||||||
if (sizeOfPacket > m_Socket->available()) {
|
if (sizeOfPacket > m_Socket->available()) {
|
||||||
LOG_WARNING("UDPClient::readBuffer(): We haven't got the whole packet yet.");
|
LOG_WARNING("UDPClient::readBuffer(): We haven't got the whole packet yet.");
|
||||||
// return;
|
// return;
|
||||||
@@ -120,7 +120,7 @@ void UDPClient::readPartOfPacket()
|
|||||||
sizeOfPacket),
|
sizeOfPacket),
|
||||||
m_ReceiverEndpoint, 0, error);
|
m_ReceiverEndpoint, 0, error);
|
||||||
if (error) {
|
if (error) {
|
||||||
LOG_ERROR("receive: %s", error.message().c_str());
|
LOG_ERROR("UDPClient::readPartOfPacket: %s", error.message().c_str());
|
||||||
}
|
}
|
||||||
// Might want to do this earlier when i figure out a good way to
|
// Might want to do this earlier when i figure out a good way to
|
||||||
// remove data from network buffer.
|
// remove data from network buffer.
|
||||||
@@ -198,7 +198,7 @@ bool UDPClient::GetNextPacket(Packet & packet)
|
|||||||
LOG_INFO("The map is increasing in size, size is %i", mapSize);
|
LOG_INFO("The map is increasing in size, size is %i", mapSize);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
if (headerInfoPacket.GetMessageType() == MessageType::Snapshot && lastReceivedSnapshotGroup > headerInfoPacket.Group()) {
|
if (headerInfoPacket.GetMessageType() == MessageType::Snapshot && m_LastReceivedSnapshotGroup > headerInfoPacket.Group()) {
|
||||||
it = m_PacketSegmentMap.erase(it);
|
it = m_PacketSegmentMap.erase(it);
|
||||||
continue;
|
continue;
|
||||||
//LOG_INFO("Deleted old entry");
|
//LOG_INFO("Deleted old entry");
|
||||||
@@ -214,10 +214,9 @@ bool UDPClient::GetNextPacket(Packet & packet)
|
|||||||
packet.WriteData(currentVector.at(i).second.get() + packet.HeaderSize(), sizeOfData - packet.HeaderSize());
|
packet.WriteData(currentVector.at(i).second.get() + packet.HeaderSize(), sizeOfData - packet.HeaderSize());
|
||||||
}
|
}
|
||||||
if (headerInfoPacket.GetMessageType() == MessageType::Snapshot) {
|
if (headerInfoPacket.GetMessageType() == MessageType::Snapshot) {
|
||||||
lastReceivedSnapshotGroup = packet.Group();
|
m_LastReceivedSnapshotGroup = packet.Group();
|
||||||
}
|
}
|
||||||
// No need to get next it as we are returning.
|
// No need to get next it as we are returning.
|
||||||
LOG_INFO("Packet parsed");
|
|
||||||
m_PacketSegmentMap.erase(it);
|
m_PacketSegmentMap.erase(it);
|
||||||
return true;
|
return true;
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
@@ -61,6 +61,8 @@ void UDPServer::Send(Packet& packet, PlayerDefinition& playerDefinition)
|
|||||||
|
|
||||||
void UDPServer::SendToConnectedPlayers(Packet& packet, std::map<PlayerID, PlayerDefinition>& playersTosendTo)
|
void UDPServer::SendToConnectedPlayers(Packet& packet, std::map<PlayerID, PlayerDefinition>& playersTosendTo)
|
||||||
{
|
{
|
||||||
|
// Remove a player if hen crashes.
|
||||||
|
// Return a vector with disconnected players.
|
||||||
// Work in progress
|
// Work in progress
|
||||||
packet.UpdateSize();
|
packet.UpdateSize();
|
||||||
|
|
||||||
@@ -95,18 +97,18 @@ void UDPServer::SendToConnectedPlayers(Packet& packet, std::map<PlayerID, Player
|
|||||||
boost::asio::buffer(splitPacket.Data(), splitPacket.Size()),
|
boost::asio::buffer(splitPacket.Data(), splitPacket.Size()),
|
||||||
kv.second.Endpoint,
|
kv.second.Endpoint,
|
||||||
0);
|
0);
|
||||||
LOG_INFO("bytesSent: %i", bytesSent);
|
// LOG_INFO("bytesSent: %i", bytesSent);
|
||||||
} catch (const boost::system::system_error& e) {
|
} catch (const boost::system::system_error& e) {
|
||||||
LOG_INFO(e.what());
|
LOG_INFO("UDPServer::SendToConnectedPlayers: Disconnected client. %s", e.what());
|
||||||
// TODO: Clean up invalid endpoints out of m_ConnectedPlayers later
|
// TODO: Clean up invalid endpoints out of m_ConnectedPlayers later
|
||||||
kv.second.Endpoint = boost::asio::ip::udp::endpoint();
|
kv.second.Endpoint = boost::asio::ip::udp::endpoint();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
packetDataSent += splitPacket.Size() - splitPacket.HeaderSize();
|
packetDataSent += splitPacket.Size() - splitPacket.HeaderSize();
|
||||||
totalBytesSent += splitPacket.Size();
|
totalBytesSent += splitPacket.Size();
|
||||||
|
|
||||||
//LOG_INFO("bytesSent size %i, groupIndex: %i. Number of packets: %i", bytesSent, sequenceNumber, totalMessages);
|
//LOG_INFO("bytesSent size %i, groupIndex: %i. Number of packets: %i", bytesSent, sequenceNumber, totalMessages);
|
||||||
++groupIndex;
|
++groupIndex;
|
||||||
}
|
}
|
||||||
for (auto& kv : playersTosendTo) {
|
for (auto& kv : playersTosendTo) {
|
||||||
kv.second.PacketGroup++;
|
kv.second.PacketGroup++;
|
||||||
@@ -123,7 +125,7 @@ void UDPServer::Send(Packet & packet)
|
|||||||
packet.Size()),
|
packet.Size()),
|
||||||
m_ReceiverEndpoint,
|
m_ReceiverEndpoint,
|
||||||
0);
|
0);
|
||||||
LOG_INFO("Size of packet is %i", bytesSent);
|
//LOG_INFO("Size of packet is %i", bytesSent);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Broadcasting respond specific logic
|
// Broadcasting respond specific logic
|
||||||
@@ -136,7 +138,7 @@ void UDPServer::Send(Packet & packet, boost::asio::ip::udp::endpoint endpoint)
|
|||||||
packet.Size()),
|
packet.Size()),
|
||||||
endpoint,
|
endpoint,
|
||||||
0);
|
0);
|
||||||
LOG_INFO("Size of packet is %i", bytesSent);
|
//LOG_INFO("Size of packet is %i", bytesSent);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Broadcasting
|
// Broadcasting
|
||||||
|
|||||||
Reference in New Issue
Block a user