- try to improve launch packet speed and add performance logging for client network code
This commit is contained in:
parent
b54b295ac8
commit
a399f8d1a5
|
@ -2947,8 +2947,14 @@ void MenuStateConnectedGame::update() {
|
|||
pingCount >= MAX_PING_LAG_COUNT && clientInterface->getLastPingLag() >= (GameConstants::networkPingInterval * MAX_PING_LAG_COUNT)) {
|
||||
if(SystemFlags::getSystemSettingType(SystemFlags::debugSystem).enabled) SystemFlags::OutputDebug(SystemFlags::debugSystem,"In [%s::%s Line: %d]\n",extractFileFromDirectoryPath(__FILE__).c_str(),__FUNCTION__,__LINE__);
|
||||
|
||||
if(SystemFlags::getSystemSettingType(SystemFlags::debugPerformance).enabled && chrono.getMillis() > 0) SystemFlags::OutputDebug(SystemFlags::debugPerformance,"In [%s::%s Line: %d] took msecs: %lld\n",extractFileFromDirectoryPath(__FILE__).c_str(),__FUNCTION__,__LINE__,chrono.getMillis());
|
||||
if(SystemFlags::getSystemSettingType(SystemFlags::debugPerformance).enabled && chrono.getMillis() > 0) chrono.start();
|
||||
|
||||
clientInterface->updateLobby();
|
||||
|
||||
if(SystemFlags::getSystemSettingType(SystemFlags::debugPerformance).enabled && chrono.getMillis() > 0) SystemFlags::OutputDebug(SystemFlags::debugPerformance,"In [%s::%s Line: %d] took msecs: %lld\n",extractFileFromDirectoryPath(__FILE__).c_str(),__FUNCTION__,__LINE__,chrono.getMillis());
|
||||
if(SystemFlags::getSystemSettingType(SystemFlags::debugPerformance).enabled && chrono.getMillis() > 0) chrono.start();
|
||||
|
||||
if(clientInterface->isConnected() && clientInterface->getJoinGameInProgress() == false &&
|
||||
pingCount >= MAX_PING_LAG_COUNT && clientInterface->getLastPingLag() >= (GameConstants::networkPingInterval * MAX_PING_LAG_COUNT)) {
|
||||
MutexSafeWrapper safeMutexFTPProgress((ftpClientThread != NULL ? ftpClientThread->getProgressMutex() : NULL),string(__FILE__) + "_" + intToStr(__LINE__));
|
||||
|
@ -3516,6 +3522,9 @@ void MenuStateConnectedGame::update() {
|
|||
//update lobby
|
||||
clientInterface= NetworkManager::getInstance().getClientInterface();
|
||||
if(clientInterface != NULL && clientInterface->isConnected()) {
|
||||
if(SystemFlags::getSystemSettingType(SystemFlags::debugPerformance).enabled && chrono.getMillis() > 0) SystemFlags::OutputDebug(SystemFlags::debugPerformance,"In [%s::%s Line: %d] took msecs: %lld\n",extractFileFromDirectoryPath(__FILE__).c_str(),__FUNCTION__,__LINE__,chrono.getMillis());
|
||||
if(SystemFlags::getSystemSettingType(SystemFlags::debugPerformance).enabled && chrono.getMillis() > 0) chrono.start();
|
||||
|
||||
clientInterface->updateLobby();
|
||||
|
||||
if(SystemFlags::getSystemSettingType(SystemFlags::debugPerformance).enabled && chrono.getMillis() > 0) SystemFlags::OutputDebug(SystemFlags::debugPerformance,"In [%s::%s Line: %d] took msecs: %lld\n",extractFileFromDirectoryPath(__FILE__).c_str(),__FUNCTION__,__LINE__,chrono.getMillis());
|
||||
|
|
|
@ -526,7 +526,14 @@ std::string ClientInterface::getServerIpAddress() {
|
|||
}
|
||||
|
||||
void ClientInterface::updateLobby() {
|
||||
Chrono chrono;
|
||||
if(SystemFlags::getSystemSettingType(SystemFlags::debugPerformance).enabled) chrono.start();
|
||||
|
||||
NetworkMessageType networkMessageType = getNextMessageType();
|
||||
|
||||
if(SystemFlags::getSystemSettingType(SystemFlags::debugPerformance).enabled && chrono.getMillis() > 0) SystemFlags::OutputDebug(SystemFlags::debugPerformance,"In [%s::%s Line: %d] took msecs: %lld\n",extractFileFromDirectoryPath(__FILE__).c_str(),__FUNCTION__,__LINE__,chrono.getMillis());
|
||||
if(SystemFlags::getSystemSettingType(SystemFlags::debugPerformance).enabled && chrono.getMillis() > 0) chrono.start();
|
||||
|
||||
switch(networkMessageType)
|
||||
{
|
||||
case nmtInvalid:
|
||||
|
@ -536,6 +543,9 @@ void ClientInterface::updateLobby() {
|
|||
{
|
||||
NetworkMessageIntro networkMessageIntro;
|
||||
if(receiveMessage(&networkMessageIntro)) {
|
||||
if(SystemFlags::getSystemSettingType(SystemFlags::debugPerformance).enabled && chrono.getMillis() > 0) SystemFlags::OutputDebug(SystemFlags::debugPerformance,"In [%s::%s Line: %d] took msecs: %lld\n",extractFileFromDirectoryPath(__FILE__).c_str(),__FUNCTION__,__LINE__,chrono.getMillis());
|
||||
if(SystemFlags::getSystemSettingType(SystemFlags::debugPerformance).enabled && chrono.getMillis() > 0) chrono.start();
|
||||
|
||||
gotIntro = true;
|
||||
sessionKey = networkMessageIntro.getSessionId();
|
||||
versionString = networkMessageIntro.getVersionString();
|
||||
|
@ -602,6 +612,9 @@ void ClientInterface::updateLobby() {
|
|||
}
|
||||
}
|
||||
|
||||
if(SystemFlags::getSystemSettingType(SystemFlags::debugPerformance).enabled && chrono.getMillis() > 0) SystemFlags::OutputDebug(SystemFlags::debugPerformance,"In [%s::%s Line: %d] took msecs: %lld\n",extractFileFromDirectoryPath(__FILE__).c_str(),__FUNCTION__,__LINE__,chrono.getMillis());
|
||||
if(SystemFlags::getSystemSettingType(SystemFlags::debugPerformance).enabled && chrono.getMillis() > 0) chrono.start();
|
||||
|
||||
if(SystemFlags::getSystemSettingType(SystemFlags::debugNetwork).enabled) SystemFlags::OutputDebug(SystemFlags::debugNetwork,"In [%s::%s Line: %d]\n",extractFileFromDirectoryPath(__FILE__).c_str(),__FUNCTION__,__LINE__);
|
||||
|
||||
if(networkMessageIntro.getGameState() == nmgstOk) {
|
||||
|
@ -661,6 +674,8 @@ void ClientInterface::updateLobby() {
|
|||
if(SystemFlags::getSystemSettingType(SystemFlags::debugNetwork).enabled) SystemFlags::OutputDebug(SystemFlags::debugNetwork,"In [%s::%s Line: %d]\n",extractFileFromDirectoryPath(__FILE__).c_str(),__FUNCTION__,__LINE__);
|
||||
return;
|
||||
}
|
||||
if(SystemFlags::getSystemSettingType(SystemFlags::debugPerformance).enabled && chrono.getMillis() > 0) SystemFlags::OutputDebug(SystemFlags::debugPerformance,"In [%s::%s Line: %d] took msecs: %lld\n",extractFileFromDirectoryPath(__FILE__).c_str(),__FUNCTION__,__LINE__,chrono.getMillis());
|
||||
if(SystemFlags::getSystemSettingType(SystemFlags::debugPerformance).enabled && chrono.getMillis() > 0) chrono.start();
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
@ -671,6 +686,9 @@ void ClientInterface::updateLobby() {
|
|||
|
||||
NetworkMessagePing networkMessagePing;
|
||||
if(receiveMessage(&networkMessagePing)) {
|
||||
if(SystemFlags::getSystemSettingType(SystemFlags::debugPerformance).enabled && chrono.getMillis() > 0) SystemFlags::OutputDebug(SystemFlags::debugPerformance,"In [%s::%s Line: %d] took msecs: %lld\n",extractFileFromDirectoryPath(__FILE__).c_str(),__FUNCTION__,__LINE__,chrono.getMillis());
|
||||
if(SystemFlags::getSystemSettingType(SystemFlags::debugPerformance).enabled && chrono.getMillis() > 0) chrono.start();
|
||||
|
||||
if(SystemFlags::getSystemSettingType(SystemFlags::debugNetwork).enabled) SystemFlags::OutputDebug(SystemFlags::debugNetwork,"In [%s::%s Line: %d]\n",extractFileFromDirectoryPath(__FILE__).c_str(),__FUNCTION__,__LINE__);
|
||||
this->setLastPingInfo(networkMessagePing);
|
||||
}
|
||||
|
@ -682,6 +700,9 @@ void ClientInterface::updateLobby() {
|
|||
NetworkMessageSynchNetworkGameData networkMessageSynchNetworkGameData;
|
||||
|
||||
if(receiveMessage(&networkMessageSynchNetworkGameData)) {
|
||||
if(SystemFlags::getSystemSettingType(SystemFlags::debugPerformance).enabled && chrono.getMillis() > 0) SystemFlags::OutputDebug(SystemFlags::debugPerformance,"In [%s::%s Line: %d] took msecs: %lld\n",extractFileFromDirectoryPath(__FILE__).c_str(),__FUNCTION__,__LINE__,chrono.getMillis());
|
||||
if(SystemFlags::getSystemSettingType(SystemFlags::debugPerformance).enabled && chrono.getMillis() > 0) chrono.start();
|
||||
|
||||
if(SystemFlags::getSystemSettingType(SystemFlags::debugNetwork).enabled) SystemFlags::OutputDebug(SystemFlags::debugNetwork,"In [%s::%s Line: %d] got NetworkMessageSynchNetworkGameData, getTechCRCFileCount() = %d\n",extractFileFromDirectoryPath(__FILE__).c_str(),__FUNCTION__,__LINE__,networkMessageSynchNetworkGameData.getTechCRCFileCount());
|
||||
|
||||
this->setLastPingInfoToNow();
|
||||
|
@ -758,6 +779,9 @@ void ClientInterface::updateLobby() {
|
|||
DisplayErrorMessage(sErr);
|
||||
}
|
||||
|
||||
if(SystemFlags::getSystemSettingType(SystemFlags::debugPerformance).enabled && chrono.getMillis() > 0) SystemFlags::OutputDebug(SystemFlags::debugPerformance,"In [%s::%s Line: %d] took msecs: %lld\n",extractFileFromDirectoryPath(__FILE__).c_str(),__FUNCTION__,__LINE__,chrono.getMillis());
|
||||
if(SystemFlags::getSystemSettingType(SystemFlags::debugPerformance).enabled && chrono.getMillis() > 0) chrono.start();
|
||||
|
||||
NetworkMessageSynchNetworkGameDataStatus sendNetworkMessageSynchNetworkGameDataStatus(mapCRC,tilesetCRC,techCRC,vctFileList);
|
||||
sendMessage(&sendNetworkMessageSynchNetworkGameDataStatus);
|
||||
}
|
||||
|
@ -768,6 +792,9 @@ void ClientInterface::updateLobby() {
|
|||
{
|
||||
NetworkMessageSynchNetworkGameDataFileCRCCheck networkMessageSynchNetworkGameDataFileCRCCheck;
|
||||
if(receiveMessage(&networkMessageSynchNetworkGameDataFileCRCCheck)) {
|
||||
if(SystemFlags::getSystemSettingType(SystemFlags::debugPerformance).enabled && chrono.getMillis() > 0) SystemFlags::OutputDebug(SystemFlags::debugPerformance,"In [%s::%s Line: %d] took msecs: %lld\n",extractFileFromDirectoryPath(__FILE__).c_str(),__FUNCTION__,__LINE__,chrono.getMillis());
|
||||
if(SystemFlags::getSystemSettingType(SystemFlags::debugPerformance).enabled && chrono.getMillis() > 0) chrono.start();
|
||||
|
||||
this->setLastPingInfoToNow();
|
||||
|
||||
Checksum checksum;
|
||||
|
@ -805,6 +832,9 @@ void ClientInterface::updateLobby() {
|
|||
"");
|
||||
sendMessage(&sendNetworkMessageSynchNetworkGameDataFileCRCCheck);
|
||||
}
|
||||
|
||||
if(SystemFlags::getSystemSettingType(SystemFlags::debugPerformance).enabled && chrono.getMillis() > 0) SystemFlags::OutputDebug(SystemFlags::debugPerformance,"In [%s::%s Line: %d] took msecs: %lld\n",extractFileFromDirectoryPath(__FILE__).c_str(),__FUNCTION__,__LINE__,chrono.getMillis());
|
||||
if(SystemFlags::getSystemSettingType(SystemFlags::debugPerformance).enabled && chrono.getMillis() > 0) chrono.start();
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
@ -813,6 +843,9 @@ void ClientInterface::updateLobby() {
|
|||
{
|
||||
NetworkMessageText networkMessageText;
|
||||
if(receiveMessage(&networkMessageText)) {
|
||||
if(SystemFlags::getSystemSettingType(SystemFlags::debugPerformance).enabled && chrono.getMillis() > 0) SystemFlags::OutputDebug(SystemFlags::debugPerformance,"In [%s::%s Line: %d] took msecs: %lld\n",extractFileFromDirectoryPath(__FILE__).c_str(),__FUNCTION__,__LINE__,chrono.getMillis());
|
||||
if(SystemFlags::getSystemSettingType(SystemFlags::debugPerformance).enabled && chrono.getMillis() > 0) chrono.start();
|
||||
|
||||
this->setLastPingInfoToNow();
|
||||
|
||||
if(SystemFlags::getSystemSettingType(SystemFlags::debugNetwork).enabled) SystemFlags::OutputDebug(SystemFlags::debugNetwork,"In [%s::%s] got nmtText\n",extractFileFromDirectoryPath(__FILE__).c_str(),__FUNCTION__);
|
||||
|
@ -827,6 +860,9 @@ void ClientInterface::updateLobby() {
|
|||
{
|
||||
NetworkMessageMarkCell networkMessageMarkCell;
|
||||
if(receiveMessage(&networkMessageMarkCell)) {
|
||||
if(SystemFlags::getSystemSettingType(SystemFlags::debugPerformance).enabled && chrono.getMillis() > 0) SystemFlags::OutputDebug(SystemFlags::debugPerformance,"In [%s::%s Line: %d] took msecs: %lld\n",extractFileFromDirectoryPath(__FILE__).c_str(),__FUNCTION__,__LINE__,chrono.getMillis());
|
||||
if(SystemFlags::getSystemSettingType(SystemFlags::debugPerformance).enabled && chrono.getMillis() > 0) chrono.start();
|
||||
|
||||
this->setLastPingInfoToNow();
|
||||
if(SystemFlags::getSystemSettingType(SystemFlags::debugNetwork).enabled) SystemFlags::OutputDebug(SystemFlags::debugNetwork,"In [%s::%s] got nmtMarkCell\n",extractFileFromDirectoryPath(__FILE__).c_str(),__FUNCTION__);
|
||||
|
||||
|
@ -842,6 +878,9 @@ void ClientInterface::updateLobby() {
|
|||
{
|
||||
NetworkMessageUnMarkCell networkMessageMarkCell;
|
||||
if(receiveMessage(&networkMessageMarkCell)) {
|
||||
if(SystemFlags::getSystemSettingType(SystemFlags::debugPerformance).enabled && chrono.getMillis() > 0) SystemFlags::OutputDebug(SystemFlags::debugPerformance,"In [%s::%s Line: %d] took msecs: %lld\n",extractFileFromDirectoryPath(__FILE__).c_str(),__FUNCTION__,__LINE__,chrono.getMillis());
|
||||
if(SystemFlags::getSystemSettingType(SystemFlags::debugPerformance).enabled && chrono.getMillis() > 0) chrono.start();
|
||||
|
||||
this->setLastPingInfoToNow();
|
||||
if(SystemFlags::getSystemSettingType(SystemFlags::debugNetwork).enabled) SystemFlags::OutputDebug(SystemFlags::debugNetwork,"In [%s::%s] got nmtMarkCell\n",extractFileFromDirectoryPath(__FILE__).c_str(),__FUNCTION__);
|
||||
|
||||
|
@ -855,6 +894,9 @@ void ClientInterface::updateLobby() {
|
|||
{
|
||||
NetworkMessageHighlightCell networkMessageHighlightCell;
|
||||
if(receiveMessage(&networkMessageHighlightCell)) {
|
||||
if(SystemFlags::getSystemSettingType(SystemFlags::debugPerformance).enabled && chrono.getMillis() > 0) SystemFlags::OutputDebug(SystemFlags::debugPerformance,"In [%s::%s Line: %d] took msecs: %lld\n",extractFileFromDirectoryPath(__FILE__).c_str(),__FUNCTION__,__LINE__,chrono.getMillis());
|
||||
if(SystemFlags::getSystemSettingType(SystemFlags::debugPerformance).enabled && chrono.getMillis() > 0) chrono.start();
|
||||
|
||||
this->setLastPingInfoToNow();
|
||||
if(SystemFlags::getSystemSettingType(SystemFlags::debugNetwork).enabled) SystemFlags::OutputDebug(SystemFlags::debugNetwork,"In [%s::%s] got nmtHighlightCell\n",extractFileFromDirectoryPath(__FILE__).c_str(),__FUNCTION__);
|
||||
|
||||
|
@ -873,6 +915,9 @@ void ClientInterface::updateLobby() {
|
|||
|
||||
NetworkMessageLaunch networkMessageLaunch;
|
||||
if(receiveMessage(&networkMessageLaunch, networkMessageType)) {
|
||||
if(SystemFlags::getSystemSettingType(SystemFlags::debugPerformance).enabled && chrono.getMillis() > 0) SystemFlags::OutputDebug(SystemFlags::debugPerformance,"In [%s::%s Line: %d] took msecs: %lld\n",extractFileFromDirectoryPath(__FILE__).c_str(),__FUNCTION__,__LINE__,chrono.getMillis());
|
||||
if(SystemFlags::getSystemSettingType(SystemFlags::debugPerformance).enabled && chrono.getMillis() > 0) chrono.start();
|
||||
|
||||
this->setLastPingInfoToNow();
|
||||
|
||||
if(networkMessageLaunch.getMessageType() == nmtLaunch) {
|
||||
|
@ -891,6 +936,9 @@ void ClientInterface::updateLobby() {
|
|||
|
||||
networkMessageLaunch.buildGameSettings(&gameSettings);
|
||||
|
||||
if(SystemFlags::getSystemSettingType(SystemFlags::debugPerformance).enabled && chrono.getMillis() > 0) SystemFlags::OutputDebug(SystemFlags::debugPerformance,"In [%s::%s Line: %d] took msecs: %lld\n",extractFileFromDirectoryPath(__FILE__).c_str(),__FUNCTION__,__LINE__,chrono.getMillis());
|
||||
if(SystemFlags::getSystemSettingType(SystemFlags::debugPerformance).enabled && chrono.getMillis() > 0) chrono.start();
|
||||
|
||||
//printf("Client got game settings playerIndex = %d lookingfor match...\n",playerIndex);
|
||||
|
||||
if(SystemFlags::getSystemSettingType(SystemFlags::debugNetwork).enabled) SystemFlags::OutputDebug(SystemFlags::debugNetwork,"In [%s::%s Lined: %d] got networkMessageLaunch.getMessageType() = %d\n",extractFileFromDirectoryPath(__FILE__).c_str(),__FUNCTION__,__LINE__,networkMessageLaunch.getMessageType());
|
||||
|
@ -923,6 +971,9 @@ void ClientInterface::updateLobby() {
|
|||
else if(networkMessageLaunch.getMessageType() == nmtBroadCastSetup) {
|
||||
setGameSettingsReceived(true);
|
||||
}
|
||||
|
||||
if(SystemFlags::getSystemSettingType(SystemFlags::debugPerformance).enabled && chrono.getMillis() > 0) SystemFlags::OutputDebug(SystemFlags::debugPerformance,"In [%s::%s Line: %d] took msecs: %lld\n",extractFileFromDirectoryPath(__FILE__).c_str(),__FUNCTION__,__LINE__,chrono.getMillis());
|
||||
if(SystemFlags::getSystemSettingType(SystemFlags::debugPerformance).enabled && chrono.getMillis() > 0) chrono.start();
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
@ -930,6 +981,9 @@ void ClientInterface::updateLobby() {
|
|||
{
|
||||
PlayerIndexMessage playerIndexMessage(-1);
|
||||
if(receiveMessage(&playerIndexMessage)) {
|
||||
if(SystemFlags::getSystemSettingType(SystemFlags::debugPerformance).enabled && chrono.getMillis() > 0) SystemFlags::OutputDebug(SystemFlags::debugPerformance,"In [%s::%s Line: %d] took msecs: %lld\n",extractFileFromDirectoryPath(__FILE__).c_str(),__FUNCTION__,__LINE__,chrono.getMillis());
|
||||
if(SystemFlags::getSystemSettingType(SystemFlags::debugPerformance).enabled && chrono.getMillis() > 0) chrono.start();
|
||||
|
||||
this->setLastPingInfoToNow();
|
||||
playerIndex= playerIndexMessage.getPlayerIndex();
|
||||
|
||||
|
@ -944,6 +998,9 @@ void ClientInterface::updateLobby() {
|
|||
{
|
||||
NetworkMessageReady networkMessageReady;
|
||||
if(receiveMessage(&networkMessageReady)) {
|
||||
if(SystemFlags::getSystemSettingType(SystemFlags::debugPerformance).enabled && chrono.getMillis() > 0) SystemFlags::OutputDebug(SystemFlags::debugPerformance,"In [%s::%s Line: %d] took msecs: %lld\n",extractFileFromDirectoryPath(__FILE__).c_str(),__FUNCTION__,__LINE__,chrono.getMillis());
|
||||
if(SystemFlags::getSystemSettingType(SystemFlags::debugPerformance).enabled && chrono.getMillis() > 0) chrono.start();
|
||||
|
||||
this->setLastPingInfoToNow();
|
||||
MutexSafeWrapper safeMutexFlags(flagAccessor,CODE_AT_LINE);
|
||||
this->readyForInGameJoin = true;
|
||||
|
@ -963,6 +1020,9 @@ void ClientInterface::updateLobby() {
|
|||
if(gotCmd == false) {
|
||||
throw megaglest_runtime_error("error retrieving nmtCommandList returned false!");
|
||||
}
|
||||
if(SystemFlags::getSystemSettingType(SystemFlags::debugPerformance).enabled && chrono.getMillis() > 0) SystemFlags::OutputDebug(SystemFlags::debugPerformance,"In [%s::%s Line: %d] took msecs: %lld\n",extractFileFromDirectoryPath(__FILE__).c_str(),__FUNCTION__,__LINE__,chrono.getMillis());
|
||||
if(SystemFlags::getSystemSettingType(SystemFlags::debugPerformance).enabled && chrono.getMillis() > 0) chrono.start();
|
||||
|
||||
this->setLastPingInfoToNow();
|
||||
}
|
||||
break;
|
||||
|
@ -975,6 +1035,9 @@ void ClientInterface::updateLobby() {
|
|||
if(gotCmd == false) {
|
||||
throw megaglest_runtime_error("error retrieving nmtQuit returned false!");
|
||||
}
|
||||
if(SystemFlags::getSystemSettingType(SystemFlags::debugPerformance).enabled && chrono.getMillis() > 0) SystemFlags::OutputDebug(SystemFlags::debugPerformance,"In [%s::%s Line: %d] took msecs: %lld\n",extractFileFromDirectoryPath(__FILE__).c_str(),__FUNCTION__,__LINE__,chrono.getMillis());
|
||||
if(SystemFlags::getSystemSettingType(SystemFlags::debugPerformance).enabled && chrono.getMillis() > 0) chrono.start();
|
||||
|
||||
this->setLastPingInfoToNow();
|
||||
setQuit(true);
|
||||
close();
|
||||
|
@ -985,6 +1048,9 @@ void ClientInterface::updateLobby() {
|
|||
{
|
||||
NetworkMessageLoadingStatus networkMessageLoadingStatus(nmls_NONE);
|
||||
if(receiveMessage(&networkMessageLoadingStatus)) {
|
||||
if(SystemFlags::getSystemSettingType(SystemFlags::debugPerformance).enabled && chrono.getMillis() > 0) SystemFlags::OutputDebug(SystemFlags::debugPerformance,"In [%s::%s Line: %d] took msecs: %lld\n",extractFileFromDirectoryPath(__FILE__).c_str(),__FUNCTION__,__LINE__,chrono.getMillis());
|
||||
if(SystemFlags::getSystemSettingType(SystemFlags::debugPerformance).enabled && chrono.getMillis() > 0) chrono.start();
|
||||
|
||||
this->setLastPingInfoToNow();
|
||||
if(SystemFlags::getSystemSettingType(SystemFlags::debugNetwork).enabled) SystemFlags::OutputDebug(SystemFlags::debugNetwork,"In [%s::%s] Line: %d\n",extractFileFromDirectoryPath(__FILE__).c_str(),__FUNCTION__,__LINE__);
|
||||
}
|
||||
|
@ -1004,11 +1070,17 @@ void ClientInterface::updateLobby() {
|
|||
}
|
||||
}
|
||||
|
||||
if(SystemFlags::getSystemSettingType(SystemFlags::debugPerformance).enabled && chrono.getMillis() > 0) SystemFlags::OutputDebug(SystemFlags::debugPerformance,"In [%s::%s Line: %d] took msecs: %lld\n",extractFileFromDirectoryPath(__FILE__).c_str(),__FUNCTION__,__LINE__,chrono.getMillis());
|
||||
if(SystemFlags::getSystemSettingType(SystemFlags::debugPerformance).enabled && chrono.getMillis() > 0) chrono.start();
|
||||
|
||||
if( clientSocket != NULL && clientSocket->isConnected() == true &&
|
||||
gotIntro == false && difftime((long int)time(NULL),connectedTime) > GameConstants::maxClientConnectHandshakeSecs) {
|
||||
if(SystemFlags::getSystemSettingType(SystemFlags::debugNetwork).enabled) SystemFlags::OutputDebug(SystemFlags::debugNetwork,"In [%s::%s Line: %d] difftime(time(NULL),connectedTime) = %f\n",extractFileFromDirectoryPath(__FILE__).c_str(),__FUNCTION__,__LINE__,difftime((long int)time(NULL),connectedTime));
|
||||
close();
|
||||
}
|
||||
|
||||
//if(SystemFlags::getSystemSettingType(SystemFlags::debugPerformance).enabled && chrono.getMillis() > 0) SystemFlags::OutputDebug(SystemFlags::debugPerformance,"In [%s::%s Line: %d] took msecs: %lld\n",extractFileFromDirectoryPath(__FILE__).c_str(),__FUNCTION__,__LINE__,chrono.getMillis());
|
||||
//if(SystemFlags::getSystemSettingType(SystemFlags::debugPerformance).enabled && chrono.getMillis() > 0) chrono.start();
|
||||
}
|
||||
|
||||
void ClientInterface::updateNetworkFrame() {
|
||||
|
|
|
@ -93,7 +93,7 @@ void NetworkMessage::send(Socket* socket, const void* data, int dataSize, int8 m
|
|||
|
||||
if(socket != NULL) {
|
||||
int msgTypeSize = sizeof(messageType);
|
||||
int fullMsgSize = dataSize + msgTypeSize;
|
||||
int fullMsgSize = msgTypeSize + dataSize;
|
||||
|
||||
char *out_buffer = new char[fullMsgSize];
|
||||
memcpy(out_buffer,&messageType,msgTypeSize);
|
||||
|
@ -118,6 +118,38 @@ void NetworkMessage::send(Socket* socket, const void* data, int dataSize, int8 m
|
|||
}
|
||||
}
|
||||
|
||||
void NetworkMessage::send(Socket* socket, const void* data, int dataSize, int8 messageType, uint32 compressedLength) {
|
||||
if(SystemFlags::getSystemSettingType(SystemFlags::debugNetwork).enabled) SystemFlags::OutputDebug(SystemFlags::debugNetwork,"In [%s::%s Line: %d] socket = %p, data = %p, dataSize = %d\n",extractFileFromDirectoryPath(__FILE__).c_str(),__FUNCTION__,__LINE__,socket,data,dataSize);
|
||||
|
||||
if(socket != NULL) {
|
||||
int msgTypeSize = sizeof(messageType);
|
||||
int compressedSize = sizeof(compressedLength);
|
||||
int fullMsgSize = msgTypeSize + compressedSize + dataSize;
|
||||
|
||||
char *out_buffer = new char[fullMsgSize];
|
||||
memcpy(out_buffer,&messageType,msgTypeSize);
|
||||
memcpy(&out_buffer[msgTypeSize],&compressedLength,compressedSize);
|
||||
memcpy(&out_buffer[msgTypeSize+compressedSize],(const char *)data,dataSize);
|
||||
|
||||
dump_packet("\nOUTGOING PACKET:\n",out_buffer, fullMsgSize, true);
|
||||
int sendResult = socket->send(out_buffer, fullMsgSize);
|
||||
if(sendResult != fullMsgSize) {
|
||||
delete [] out_buffer;
|
||||
if(socket != NULL && socket->isSocketValid() == true) {
|
||||
char szBuf[8096]="";
|
||||
snprintf(szBuf,8096,"Error sending NetworkMessage, sendResult = %d, dataSize = %d",sendResult,fullMsgSize);
|
||||
throw megaglest_runtime_error(szBuf);
|
||||
}
|
||||
else {
|
||||
if(SystemFlags::getSystemSettingType(SystemFlags::debugNetwork).enabled) SystemFlags::OutputDebug(SystemFlags::debugNetwork,"In [%s::%s] Line: %d socket has been disconnected\n",extractFileFromDirectoryPath(__FILE__).c_str(),__FUNCTION__,__LINE__);
|
||||
}
|
||||
}
|
||||
else {
|
||||
delete [] out_buffer;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void NetworkMessage::resetNetworkPacketStats() {
|
||||
NetworkMessage::statsTimer.stop();
|
||||
NetworkMessage::lastSend.stop();
|
||||
|
@ -1344,11 +1376,22 @@ bool NetworkMessageLaunch::receive(Socket* socket, NetworkMessageType type) {
|
|||
bool NetworkMessageLaunch::receive(Socket* socket) {
|
||||
//printf("Receive NetworkMessageLaunch\n");
|
||||
bool result = false;
|
||||
|
||||
Chrono chrono;
|
||||
if(SystemFlags::getSystemSettingType(SystemFlags::debugPerformance).enabled) chrono.start();
|
||||
|
||||
if(useOldProtocol == true) {
|
||||
|
||||
if(SystemFlags::getSystemSettingType(SystemFlags::debugPerformance).enabled && chrono.getMillis() > 0) SystemFlags::OutputDebug(SystemFlags::debugPerformance,"In [%s::%s Line: %d] took msecs: %lld\n",extractFileFromDirectoryPath(__FILE__).c_str(),__FUNCTION__,__LINE__,chrono.getMillis());
|
||||
if(SystemFlags::getSystemSettingType(SystemFlags::debugPerformance).enabled && chrono.getMillis() > 0) chrono.start();
|
||||
|
||||
//printf("UnCompressed launch packet before read compressed size\n");
|
||||
result = NetworkMessage::receive(socket, &compressedLength, sizeof(compressedLength), true);
|
||||
//printf("UnCompressed launch packet after read compressed size: %d\n",compressedLength);
|
||||
|
||||
if(SystemFlags::getSystemSettingType(SystemFlags::debugPerformance).enabled && chrono.getMillis() > 0) SystemFlags::OutputDebug(SystemFlags::debugPerformance,"In [%s::%s Line: %d] took msecs: %lld\n",extractFileFromDirectoryPath(__FILE__).c_str(),__FUNCTION__,__LINE__,chrono.getMillis());
|
||||
if(SystemFlags::getSystemSettingType(SystemFlags::debugPerformance).enabled && chrono.getMillis() > 0) chrono.start();
|
||||
|
||||
if(result == true && compressedLength > 0 && socket != NULL && socket->isSocketValid()) {
|
||||
//printf("UnCompressed launch packet before: %u after: %d\n",compressedLength,(int)getDataSize());
|
||||
|
||||
|
@ -1358,6 +1401,9 @@ bool NetworkMessageLaunch::receive(Socket* socket) {
|
|||
result = NetworkMessage::receive(socket, compressedMessage, compressedLength, true);
|
||||
//printf("UnCompressed launch packet READ returned: %d\n",result);
|
||||
|
||||
if(SystemFlags::getSystemSettingType(SystemFlags::debugPerformance).enabled && chrono.getMillis() > 0) SystemFlags::OutputDebug(SystemFlags::debugPerformance,"In [%s::%s Line: %d] took msecs: %lld\n",extractFileFromDirectoryPath(__FILE__).c_str(),__FUNCTION__,__LINE__,chrono.getMillis());
|
||||
if(SystemFlags::getSystemSettingType(SystemFlags::debugPerformance).enabled && chrono.getMillis() > 0) chrono.start();
|
||||
|
||||
if(result == true && socket != NULL && socket->isSocketValid()) {
|
||||
//printf("UnCompressed launch packet before decompress\n");
|
||||
|
||||
|
@ -1374,17 +1420,30 @@ bool NetworkMessageLaunch::receive(Socket* socket) {
|
|||
unsigned long buffer_size = compressedLength;
|
||||
std::pair<unsigned char *,unsigned long> decompressedBuffer =
|
||||
Shared::CompressionUtil::extractMemoryToMemory(compressedMessage, buffer_size, maxNetworkMessageSize);
|
||||
|
||||
if(SystemFlags::getSystemSettingType(SystemFlags::debugPerformance).enabled && chrono.getMillis() > 0) SystemFlags::OutputDebug(SystemFlags::debugPerformance,"In [%s::%s Line: %d] took msecs: %lld\n",extractFileFromDirectoryPath(__FILE__).c_str(),__FUNCTION__,__LINE__,chrono.getMillis());
|
||||
if(SystemFlags::getSystemSettingType(SystemFlags::debugPerformance).enabled && chrono.getMillis() > 0) chrono.start();
|
||||
|
||||
unsigned char *decompressed_buffer = decompressedBuffer.first;
|
||||
memcpy(&data,decompressed_buffer,decompressedBuffer.second);
|
||||
delete [] decompressed_buffer;
|
||||
|
||||
if(SystemFlags::getSystemSettingType(SystemFlags::debugPerformance).enabled && chrono.getMillis() > 0) SystemFlags::OutputDebug(SystemFlags::debugPerformance,"In [%s::%s Line: %d] took msecs: %lld\n",extractFileFromDirectoryPath(__FILE__).c_str(),__FUNCTION__,__LINE__,chrono.getMillis());
|
||||
if(SystemFlags::getSystemSettingType(SystemFlags::debugPerformance).enabled && chrono.getMillis() > 0) chrono.start();
|
||||
|
||||
//printf("SUCCESS UnCompressed launch packet before: %u after: %lu\n",compressedLength,decompressedBuffer.second);
|
||||
}
|
||||
delete [] compressedMessage;
|
||||
|
||||
if(SystemFlags::getSystemSettingType(SystemFlags::debugPerformance).enabled && chrono.getMillis() > 0) SystemFlags::OutputDebug(SystemFlags::debugPerformance,"In [%s::%s Line: %d] took msecs: %lld\n",extractFileFromDirectoryPath(__FILE__).c_str(),__FUNCTION__,__LINE__,chrono.getMillis());
|
||||
if(SystemFlags::getSystemSettingType(SystemFlags::debugPerformance).enabled && chrono.getMillis() > 0) chrono.start();
|
||||
}
|
||||
else if(result == true) {
|
||||
//printf("Normal launch packet detected (uncompressed)\n");
|
||||
result = NetworkMessage::receive(socket, &data, sizeof(data), true);
|
||||
|
||||
if(SystemFlags::getSystemSettingType(SystemFlags::debugPerformance).enabled && chrono.getMillis() > 0) SystemFlags::OutputDebug(SystemFlags::debugPerformance,"In [%s::%s Line: %d] took msecs: %lld\n",extractFileFromDirectoryPath(__FILE__).c_str(),__FUNCTION__,__LINE__,chrono.getMillis());
|
||||
if(SystemFlags::getSystemSettingType(SystemFlags::debugPerformance).enabled && chrono.getMillis() > 0) chrono.start();
|
||||
}
|
||||
}
|
||||
else {
|
||||
|
@ -1396,6 +1455,9 @@ bool NetworkMessageLaunch::receive(Socket* socket) {
|
|||
}
|
||||
fromEndian();
|
||||
|
||||
if(SystemFlags::getSystemSettingType(SystemFlags::debugPerformance).enabled && chrono.getMillis() > 0) SystemFlags::OutputDebug(SystemFlags::debugPerformance,"In [%s::%s Line: %d] took msecs: %lld\n",extractFileFromDirectoryPath(__FILE__).c_str(),__FUNCTION__,__LINE__,chrono.getMillis());
|
||||
if(SystemFlags::getSystemSettingType(SystemFlags::debugPerformance).enabled && chrono.getMillis() > 0) chrono.start();
|
||||
|
||||
data.description.nullTerminate();
|
||||
data.map.nullTerminate();
|
||||
data.tileset.nullTerminate();
|
||||
|
@ -1416,6 +1478,8 @@ bool NetworkMessageLaunch::receive(Socket* socket) {
|
|||
|
||||
data.gameUUID.nullTerminate();
|
||||
|
||||
if(SystemFlags::getSystemSettingType(SystemFlags::debugPerformance).enabled && chrono.getMillis() > 0) SystemFlags::OutputDebug(SystemFlags::debugPerformance,"In [%s::%s Line: %d] took msecs: %lld\n",extractFileFromDirectoryPath(__FILE__).c_str(),__FUNCTION__,__LINE__,chrono.getMillis());
|
||||
|
||||
//for(int i= 0; i < GameConstants::maxPlayers; ++i){
|
||||
// printf("Receive index: %d resource multiplier index: %d sizeof(data): %d\n",i,data.resourceMultiplierIndex[i],sizeof(data));
|
||||
//}
|
||||
|
@ -1470,6 +1534,7 @@ void NetworkMessageLaunch::send(Socket* socket) {
|
|||
// }
|
||||
// printf("\n");
|
||||
|
||||
/*
|
||||
NetworkMessage::send(socket, &messageType, sizeof(messageType));
|
||||
if(socket != NULL && socket->isSocketValid()) {
|
||||
NetworkMessage::send(socket, &compressedLength, sizeof(compressedLength));
|
||||
|
@ -1477,6 +1542,8 @@ void NetworkMessageLaunch::send(Socket* socket) {
|
|||
NetworkMessage::send(socket, compressionResult.first, compressionResult.second);
|
||||
}
|
||||
}
|
||||
*/
|
||||
NetworkMessage::send(socket, compressionResult.first, compressionResult.second, messageType, compressedLength);
|
||||
delete [] compressionResult.first;
|
||||
//printf("Compressed launch packet SENT\n");
|
||||
}
|
||||
|
|
|
@ -126,6 +126,7 @@ protected:
|
|||
bool receive(Socket* socket, void* data, int dataSize,bool tryReceiveUntilDataSizeMet);
|
||||
void send(Socket* socket, const void* data, int dataSize);
|
||||
void send(Socket* socket, const void* data, int dataSize, int8 messageType);
|
||||
void send(Socket* socket, const void* data, int dataSize, int8 messageType, uint32 compressedLength);
|
||||
|
||||
virtual const char * getPackedMessageFormat() const = 0;
|
||||
virtual unsigned int getPackedSize() = 0;
|
||||
|
|
Loading…
Reference in New Issue