Browse Source

Log Meldungen hinzugefügt

Kolja Strohm 6 years ago
parent
commit
b34741604e

+ 21 - 3
KSGClient/Netzwerk/Klients/AnmeldungK.cpp

@@ -1,6 +1,7 @@
 #include "../KSGKlient.h"
 #include "../KSGServer.h"
 #include "../Keys.h"
+#include <Globals.h>
 
 // Inhalt der AnmeldungKlient Klasse aus KSGKlient.h
 // Konstruktor
@@ -104,6 +105,7 @@ bool AnmeldungKlient::verbinde() // verbindet ich mit dem Chat Server
     {
         char *msIp = getMainServerIp();
         unsigned short msPort = getMainServerPort();
+        Framework::logLine( "Verbinung mit Main Server wird hergestellt..." );
         klient = new Klient();
         int keyLen = 0;
         char *key = 0;
@@ -115,6 +117,7 @@ bool AnmeldungKlient::verbinde() // verbindet ich mit dem Chat Server
         delete[] key;
         if( !klient->verbinde( msPort, msIp ) )
         {
+            Framework::logLine( "ERROR: Server nicht erreichbar." );
             fehler->setText( "Fehler beim verbinden mit dem Main Server. Bitte versuche es Später erneut." );
             klient = klient->release();
             delete[]msIp;
@@ -135,6 +138,7 @@ bool AnmeldungKlient::verbinde() // verbindet ich mit dem Chat Server
             nachricht[ län ] = 0;
             klient->getNachrichtEncrypted( nachricht, län );
             fehler->setText( nachricht );
+            Framework::logLine( Text( "ERROR: " ) += nachricht );
             delete[]nachricht;
             klient->sendeEncrypted( "\3", 1 );
             klient->getNachrichtEncrypted( &serverReturn, 1 );
@@ -168,6 +172,7 @@ bool AnmeldungKlient::verbinde() // verbindet ich mit dem Chat Server
             lsIpT->append( (int)lsIp[ 2 ] );
             lsIpT->append( "." );
             lsIpT->append( (int)lsIp[ 3 ] );
+            Framework::logLine( ( ( Text( "Zugeteilter Anmeldung Server:" ) += lsIpT->getText() ) += ":" ) += lsPort );
             int keyLen = 0;
             char *key = 0;
             Keys::getServerKey( &key, keyLen, Keys::ANMELDUNG, Keys::SENDEN );
@@ -189,6 +194,7 @@ bool AnmeldungKlient::verbinde() // verbindet ich mit dem Chat Server
             f[ byte ] = 0;
             klient->getNachrichtEncrypted( f, byte );
             fehler->setText( f );
+            Framework::logLine( Text( "ERROR: " ) += f );
             delete[]f;
             klient->sendeEncrypted( "\3", 1 );
             klient->getNachrichtEncrypted( &serverReturn, 1 );
@@ -198,6 +204,7 @@ bool AnmeldungKlient::verbinde() // verbindet ich mit dem Chat Server
             return 0;
         }
     }
+    Framework::logLine( "Verbinung mit Anmeldung Server wird hergestellt..." );
     int keyLen = 0;
     char *key = 0;
     Keys::getServerKey( &key, keyLen, Keys::ANMELDUNG, Keys::SENDEN );
@@ -221,6 +228,7 @@ bool AnmeldungKlient::verbinde() // verbindet ich mit dem Chat Server
                 f[ byte ] = 0;
                 klient->getNachrichtEncrypted( f, byte );
                 fehler->setText( f );
+                Framework::logLine( Text( "ERROR: " ) += f );
                 delete[]f;
                 klient->sendeEncrypted( "\3", 1 );
                 klient->getNachrichtEncrypted( &serverReturn, 1 );
@@ -235,16 +243,19 @@ bool AnmeldungKlient::verbinde() // verbindet ich mit dem Chat Server
             delete[] sl;
             verbunden = 1;
             cs.unlock();
+            Framework::logLine( "Erfolgreich mit Anmeldung Server verbunden." );
             return 1;
         }
         else
         {
+            Framework::logLine( "ERROR: Senden zum Server nicht erfolgreich." );
             fehler->setText( "Der dir zugewiesene Anmeldung Server hat die Verbindung abgebrochen. Bitte versuche es Später erneut." );
             klient = klient->release();
         }
     }
     else
     {
+        Framework::logLine( "ERROR: Server nicht erreichbar." );
         fehler->setText( "Der dir zugewiesene Anmeldung Server antwortet nicht. Bitte versuche es Später erneut." );
         klient = klient->release();
     }
@@ -783,11 +794,17 @@ bool AnmeldungKlient::keepAlive() // Erh
     char res = 0;
     if( !cs.tryLock() )
         return 1;
-    klient->sendeEncrypted( "\x13", 1 );
-    klient->getNachrichtEncrypted( &res, 1 );
+    Framework::logLine( "Verbindungstest zum Anmeldung Server..." );
+    bool ok = klient->sendeEncrypted( "\x13", 1 );
+    ok &= klient->getNachrichtEncrypted( &res, 1 );
     cs.unlock();
-    if( res != 1 )
+    if( res != 1 || !ok )
+    {
+        Framework::logLine( "Verbindungsabbruch." );
         trenne();
+    }
+    else
+        Framework::logLine( "Verbindung besteht." );
     return res == 1;
 }
 
@@ -796,6 +813,7 @@ bool AnmeldungKlient::trenne() // trennt sich von dem Chat Server
     if( !verbunden )
         return 1;
     cs.lock();
+    Framework::logLine( "Verbindung zum Anmeldung Server wird getrennt..." );
     klient->sendeEncrypted( "\3", 1 );
     char serverReturn = 0;
     klient->getNachrichtEncrypted( &serverReturn, 1 );

+ 22 - 3
KSGClient/Netzwerk/Klients/ChatK.cpp

@@ -2,6 +2,7 @@
 #include "../KSGServer.h"
 #include "../../Global/Variablen.h"
 #include "../Keys.h"
+#include <Globals.h>
 
 // Inhalt der ChatKlient Klasse aus KSGKlient.h
 // Konstruktor
@@ -55,6 +56,7 @@ bool ChatKlient::verbinde() // verbindet ich mit dem Chat Server
     }
     if( !senden )
     {
+        Framework::logLine( "Verbinung mit Main Server wird hergestellt..." );
         char *msIp = getMainServerIp();
         unsigned short msPort = getMainServerPort();
         senden = new Klient();
@@ -68,6 +70,7 @@ bool ChatKlient::verbinde() // verbindet ich mit dem Chat Server
         delete[] key;
         if( !senden->verbinde( msPort, msIp ) )
         {
+            Framework::logLine( "ERROR: Server nicht erreichbar." );
             fehler->setText( "Fehler beim verbinden mit dem Main Server. Bitte versuche es Später erneut." );
             senden = senden->release();
             delete[]msIp;
@@ -87,6 +90,7 @@ bool ChatKlient::verbinde() // verbindet ich mit dem Chat Server
             char *nachricht = new char[ län + 1 ];
             nachricht[ län ] = 0;
             senden->getNachrichtEncrypted( nachricht, län );
+            Framework::logLine( Text( "ERROR: " ) += nachricht );
             fehler->setText( nachricht );
             delete[]nachricht;
             senden->sendeEncrypted( "\3", 1 );
@@ -121,6 +125,7 @@ bool ChatKlient::verbinde() // verbindet ich mit dem Chat Server
             lsIpT->append( (int)lsIp[ 2 ] );
             lsIpT->append( "." );
             lsIpT->append( (int)lsIp[ 3 ] );
+            Framework::logLine( ( ( Text( "Zugeteilter Chat Server:" ) += lsIpT->getText() ) += ":" ) += lsPort );
             int keyLen = 0;
             char *key = 0;
             Keys::getServerKey( &key, keyLen, Keys::CHAT, Keys::SENDEN );
@@ -142,6 +147,7 @@ bool ChatKlient::verbinde() // verbindet ich mit dem Chat Server
             char *f = new char[ byte + 1 ];
             f[ byte ] = 0;
             senden->getNachrichtEncrypted( f, byte );
+            Framework::logLine( Text( "ERROR: " ) += f );
             fehler->setText( f );
             delete[]f;
             senden->sendeEncrypted( "\3", 1 );
@@ -152,6 +158,7 @@ bool ChatKlient::verbinde() // verbindet ich mit dem Chat Server
             return 0;
         }
     }
+    Framework::logLine( "Verbinung mit Chat Server wird hergestellt..." );
     int keyLen = 0;
     char *key = 0;
     Keys::getServerKey( &key, keyLen, Keys::CHAT, Keys::SENDEN );
@@ -175,6 +182,7 @@ bool ChatKlient::verbinde() // verbindet ich mit dem Chat Server
                 f[ byte ] = 0;
                 senden->getNachrichtEncrypted( f, byte );
                 fehler->setText( f );
+                Framework::logLine( Text( "ERROR: " ) += f );
                 delete[]f;
                 senden->sendeEncrypted( "\3", 1 );
                 char serverReturn = 0;
@@ -203,10 +211,12 @@ bool ChatKlient::verbinde() // verbindet ich mit dem Chat Server
                 start();
                 verbunden = 1;
                 cs.unlock();
+                Framework::logLine( "Erfolgreich mit Chat Server verbunden." );
                 return 1;
             }
             else
             {
+                Framework::logLine( "ERROR: Empfangen vom Server nicht erfolgreich." );
                 fehler->setText( "Der dir zugewiesene Chat Server kann dir keine Nachrichten senden." );
                 cs.unlock();
                 return 1;
@@ -214,12 +224,14 @@ bool ChatKlient::verbinde() // verbindet ich mit dem Chat Server
         }
         else
         {
+            Framework::logLine( "ERROR: Senden zum Server nicht erfolgreich." );
             fehler->setText( "Der dir zugewiesene Chat Server hat die Verbindung abgebrochen. Bitte versuche es Später erneut." );
             senden = senden->release();
         }
     }
     else
     {
+        Framework::logLine( "ERROR: Server nicht erreichbar." );
         fehler->setText( "Der dir zugewiesene Chat Server antwortet nicht. Bitte versuche es Später erneut." );
         senden = senden->release();
     }
@@ -579,11 +591,17 @@ bool ChatKlient::keepAlive() // Erh
     char res = 0;
     if( !cs.tryLock() )
         return 1;
-    senden->sendeEncrypted( "\x15", 1 );
-    senden->getNachrichtEncrypted( &res, 1 );
+    Framework::logLine( "Verbindungstest zum Chat Server..." );
+    bool ok = senden->sendeEncrypted( "\x15", 1 );
+    ok &= senden->getNachrichtEncrypted( &res, 1 );
     cs.unlock();
-    if( res != 1 )
+    if( res != 1 || !ok )
+    {
+        Framework::logLine( "Verbindungsabbruch." );
         trenne();
+    }
+    else
+        Framework::logLine( "Verbindung besteht." );
     return res == 1;
 }
 
@@ -592,6 +610,7 @@ bool ChatKlient::trenne() // trennt sich von dem Chat Server
     if( !verbunden )
         return 1;
     cs.lock();
+    Framework::logLine( "Verbindung zum Chat Server wird getrennt..." );
     senden->sendeEncrypted( "\3", 1 );
     char serverReturn = 0;
     senden->getNachrichtEncrypted( &serverReturn, 1 );

+ 14 - 3
KSGClient/Netzwerk/Klients/EditorK.cpp

@@ -4,6 +4,7 @@
 #include "../../Global/Variablen.h"
 #include <GSLDateiV.h>
 #include "../Keys.h"
+#include <Globals.h>
 
 typedef GSL::GSLDateiV *( *GetGSLDatei )( );
 
@@ -118,6 +119,8 @@ bool EditorKlient::verbinde( unsigned short port, char *ip ) // verbindet ich mi
     if( klient || verbunden )
         trenne();
     klient = new Klient();
+    Framework::logLine( ( ( Text( "Zugeteilter Editor Server:" ) += ip ) += ":" ) += port );
+    Framework::logLine( "Verbinung mit Editor Server wird hergestellt..." );
     int keyLen = 0;
     char *key = 0;
     Keys::getServerKey( &key, keyLen, Keys::EDITOR, Keys::SENDEN );
@@ -128,6 +131,7 @@ bool EditorKlient::verbinde( unsigned short port, char *ip ) // verbindet ich mi
     delete[] key;
     if( !klient->verbinde( (unsigned short)port, ip ) )
     {
+        Framework::logLine( "ERROR: Server nicht erreichbar." );
         klient = klient->release();
         fehler->setText( "Fehler beim verbinden mit dem Editor Server." );
         return 0;
@@ -144,6 +148,7 @@ bool EditorKlient::verbinde( unsigned short port, char *ip ) // verbindet ich mi
         nachricht[ län ] = 0;
         klient->getNachrichtEncrypted( nachricht, län );
         fehler->setText( nachricht );
+        Framework::logLine( Text( "ERROR: " ) += nachricht );
         delete[]nachricht;
         trenne();
         return 0;
@@ -157,6 +162,7 @@ bool EditorKlient::verbinde( unsigned short port, char *ip ) // verbindet ich mi
         delete[] sl;
         verbunden = 1;
     }
+    Framework::logLine( "Erfolgreich mit Editor Server verbunden." );
     return 1;
 }
 
@@ -2811,15 +2817,19 @@ bool EditorKlient::keepAlive() // Erh
         cs.unlock();
         return 0;
     }
+    Framework::logLine( "Verbindungstest zum Editor Server..." );
     char res = 0;
-    klient->sendeEncrypted( "\x5", 1 );
-    klient->getNachrichtEncrypted( &res, 1 );
+    bool ok = klient->sendeEncrypted( "\x5", 1 );
+    ok &= klient->getNachrichtEncrypted( &res, 1 );
     cs.unlock();
-    if( res != 1 )
+    if( res != 1 || !ok )
     {
+        Framework::logLine( "Verbindungsabbruch." );
         trenne();
         fehler->setText( "Verbindung unterbrochen: 'Keep Alive' nicht erfolgreich." );
     }
+    else
+        Framework::logLine( "Verbindung besteht." );
     return res == 1;
 }
 
@@ -2833,6 +2843,7 @@ bool EditorKlient::trenne() // trennt sich von dem Editor Server
         cs.unlock();
         return 1;
     }
+    Framework::logLine( "Verbindung zum Editor Server wird getrennt..." );
     char serverReturn;
     klient->sendeEncrypted( "\4", 1 );
     klient->getNachrichtEncrypted( &serverReturn, 1 );

+ 7 - 0
KSGClient/Netzwerk/Klients/HistorieK.cpp

@@ -3,6 +3,7 @@
 #include "../../Global/Variablen.h"
 #include <Datei.h>
 #include "../Keys.h"
+#include <Globals.h>
 
 // Inhalt der HistorieKlient Klasse KSGKlient.h
 // Konstruktor
@@ -31,6 +32,8 @@ bool HistorieKlient::verbinde( char *ip, int port ) // verbindet ich mit dem His
     if( klient )
         trenne();
     klient = new Klient();
+    Framework::logLine( ( ( Text( "Zugeteilter Historie Server:" ) += ip ) += ":" ) += port );
+    Framework::logLine( "Verbinung mit Historie Server wird hergestellt..." );
     int keyLen = 0;
     char *key = 0;
     Keys::getServerKey( &key, keyLen, Keys::HISTORIE, Keys::SENDEN );
@@ -41,6 +44,7 @@ bool HistorieKlient::verbinde( char *ip, int port ) // verbindet ich mit dem His
     delete[] key;
     if( !klient->verbinde( (unsigned short)port, ip ) )
     {
+        Framework::logLine( "ERROR: Server nicht erreichbar." );
         klient = klient->release();
         fehler->setText( "Fehler beim verbinden mit dem Historie Server." );
         return 0;
@@ -57,6 +61,7 @@ bool HistorieKlient::verbinde( char *ip, int port ) // verbindet ich mit dem His
         nachricht[ län ] = 0;
         klient->getNachrichtEncrypted( nachricht, län );
         fehler->setText( nachricht );
+        Framework::logLine( Text( "ERROR: " ) += nachricht );
         delete[]nachricht;
         trenne();
         return 0;
@@ -69,6 +74,7 @@ bool HistorieKlient::verbinde( char *ip, int port ) // verbindet ich mit dem His
         klient->setEmpfangKey( sl, slLän );
         delete[] sl;
     }
+    Framework::logLine( "Erfolgreich mit Historie Server verbunden." );
     return 1;
 }
 
@@ -76,6 +82,7 @@ bool HistorieKlient::trenne() // trennt sich von dem Historie Server
 {
     if( !klient )
         return 1;
+    Framework::logLine( "Verbindung zum Historie Server wird getrennt..." );
     char serverReturn;
     klient->sendeEncrypted( "\4", 1 );
     klient->getNachrichtEncrypted( &serverReturn, 1 );

+ 21 - 3
KSGClient/Netzwerk/Klients/InformationK.cpp

@@ -3,6 +3,7 @@
 #include "../../NachLogin/Account/Historie/AccountHistorieDaten.h"
 #include <iostream>
 #include "../Keys.h"
+#include <Globals.h>
 
 int waiting = 0;
 
@@ -108,6 +109,7 @@ bool InformationKlient::verbinde() // verbindet ich mit dem Informaion Server
     {
         char *msIp = getMainServerIp();
         unsigned short msPort = getMainServerPort();
+        Framework::logLine( "Verbinung mit Main Server wird hergestellt..." );
         klient = new Klient();
         int keyLen = 0;
         char *key = 0;
@@ -119,6 +121,7 @@ bool InformationKlient::verbinde() // verbindet ich mit dem Informaion Server
         delete[] key;
         if( !klient->verbinde( msPort, msIp ) )
         {
+            Framework::logLine( "ERROR: Server nicht erreichbar." );
             fehler->setText( "Fehler beim verbinden mit dem Main Server. Bitte versuche es Später erneut." );
             klient = klient->release();
             delete[]msIp;
@@ -139,6 +142,7 @@ bool InformationKlient::verbinde() // verbindet ich mit dem Informaion Server
             nachricht[ län ] = 0;
             klient->getNachrichtEncrypted( nachricht, län );
             fehler->setText( nachricht );
+            Framework::logLine( Text( "ERROR: " ) += nachricht );
             delete[]nachricht;
             klient->sendeEncrypted( "\3", 1 );
             klient->getNachrichtEncrypted( &serverReturn, 1 );
@@ -172,6 +176,7 @@ bool InformationKlient::verbinde() // verbindet ich mit dem Informaion Server
             lsIpT->append( (int)lsIp[ 2 ] );
             lsIpT->append( "." );
             lsIpT->append( (int)lsIp[ 3 ] );
+            Framework::logLine( ( ( Text( "Zugeteilter Information Server:" ) += lsIpT->getText() ) += ":" ) += lsPort );
             int keyLen = 0;
             char *key = 0;
             Keys::getServerKey( &key, keyLen, Keys::INFORMATION, Keys::SENDEN );
@@ -193,6 +198,7 @@ bool InformationKlient::verbinde() // verbindet ich mit dem Informaion Server
             f[ byte ] = 0;
             klient->getNachrichtEncrypted( f, byte );
             fehler->setText( f );
+            Framework::logLine( Text( "ERROR: " ) += f );
             delete[]f;
             klient->sendeEncrypted( "\3", 1 );
             klient->getNachrichtEncrypted( &serverReturn, 1 );
@@ -202,6 +208,7 @@ bool InformationKlient::verbinde() // verbindet ich mit dem Informaion Server
             return 0;
         }
     }
+    Framework::logLine( "Verbinung mit Information Server wird hergestellt..." );
     int keyLen = 0;
     char *key = 0;
     Keys::getServerKey( &key, keyLen, Keys::INFORMATION, Keys::SENDEN );
@@ -225,6 +232,7 @@ bool InformationKlient::verbinde() // verbindet ich mit dem Informaion Server
                 f[ byte ] = 0;
                 klient->getNachrichtEncrypted( f, byte );
                 fehler->setText( f );
+                Framework::logLine( Text( "ERROR: " ) += f );
                 delete[]f;
                 klient->sendeEncrypted( "\3", 1 );
                 klient->getNachrichtEncrypted( &serverReturn, 1 );
@@ -239,16 +247,19 @@ bool InformationKlient::verbinde() // verbindet ich mit dem Informaion Server
             delete[] sl;
             verbunden = 1;
             cs.unlock();
+            Framework::logLine( "Erfolgreich mit Information Server verbunden." );
             return 1;
         }
         else
         {
+            Framework::logLine( "ERROR: Senden zum Server nicht erfolgreich." );
             fehler->setText( "Der dir zugewiesene Informations Server hat die Verbindung abgebrochen. Bitte versuche es Später erneut." );
             klient = klient->release();
         }
     }
     else
     {
+        Framework::logLine( "ERROR: Server nicht erreichbar." );
         fehler->setText( "Der dir zugewiesene Informations Server antwortet nicht. Bitte versuche es Später erneut." );
         klient = klient->release();
     }
@@ -1848,11 +1859,17 @@ bool InformationKlient::keepAlive() // Erh
     char res = 0;
     if( !cs.tryLock() )
         return 1;
-    klient->sendeEncrypted( "\x2C", 1 );
-    klient->getNachrichtEncrypted( &res, 1 );
+    Framework::logLine( "Verbindungstest zum Information Server..." );
+    bool ok = klient->sendeEncrypted( "\x2C", 1 );
+    ok &= klient->getNachrichtEncrypted( &res, 1 );
     cs.unlock();
-    if( res != 1 )
+    if( res != 1 || !ok )
+    {
+        Framework::logLine( "Verbindungsabbruch." );
         trenne();
+    }
+    else
+        Framework::logLine( "Verbindung besteht." );
     return res == 1;
 }
 
@@ -2044,6 +2061,7 @@ bool InformationKlient::trenne() // trennt sich von dem Informaion Server
         cs.unlock();
         return 1;
     }
+    Framework::logLine( "Verbindung zum Information Server wird getrennt..." );
     klient->sendeEncrypted( "\3", 1 );
     Sleep( 100 );
     klient->trenne();

+ 14 - 3
KSGClient/Netzwerk/Klients/KartenK.cpp

@@ -3,6 +3,7 @@
 #include <Datei.h>
 #include "../../Global/Variablen.h"
 #include "../Keys.h"
+#include <Globals.h>
 
 // Inhalt der KartenKlient Klasse aus KSGKlient.h
 // Konstruktor
@@ -33,6 +34,8 @@ bool KartenKlient::verbinde( unsigned short port, char *ip ) // verbindet ich mi
     if( klient || verbunden )
         trenne();
     klient = new Klient();
+    Framework::logLine( ( ( Text( "Zugeteilter Karten Server:" ) += ip ) += ":" ) += port );
+    Framework::logLine( "Verbinung mit Karten Server wird hergestellt..." );
     int keyLen = 0;
     char *key = 0;
     Keys::getServerKey( &key, keyLen, Keys::KARTEN, Keys::SENDEN );
@@ -43,6 +46,7 @@ bool KartenKlient::verbinde( unsigned short port, char *ip ) // verbindet ich mi
     delete[] key;
     if( !klient->verbinde( (unsigned short)port, ip ) )
     {
+        Framework::logLine( "ERROR: Server nicht erreichbar." );
         klient = klient->release();
         fehler->setText( "Fehler beim verbinden mit dem Editor Server." );
         return 0;
@@ -59,6 +63,7 @@ bool KartenKlient::verbinde( unsigned short port, char *ip ) // verbindet ich mi
         nachricht[ län ] = 0;
         klient->getNachrichtEncrypted( nachricht, län );
         fehler->setText( nachricht );
+        Framework::logLine( Text( "ERROR: " ) += nachricht );
         delete[]nachricht;
         trenne();
         return 0;
@@ -72,6 +77,7 @@ bool KartenKlient::verbinde( unsigned short port, char *ip ) // verbindet ich mi
         delete[] sl;
         verbunden = 1;
     }
+    Framework::logLine( "Erfolgreich mit Karten Server verbunden." );
     return 1;
 }
 
@@ -396,14 +402,18 @@ bool KartenKlient::keepAlive() // Erh
     char res = 0;
     if( !cs.tryLock() )
         return 1;
-    klient->sendeEncrypted( "\x5", 1 );
-    klient->getNachrichtEncrypted( &res, 1 );
+    Framework::logLine( "Verbindungstest zum Karten Server..." );
+    bool ok = klient->sendeEncrypted( "\x5", 1 );
+    ok &= klient->getNachrichtEncrypted( &res, 1 );
     cs.unlock();
-    if( res != 1 )
+    if( res != 1 || !ok )
     {
+        Framework::logLine( "Verbindungsabbruch." );
         trenne();
         fehler->setText( "Verbindung unterbrochen: 'Keep Alive' nicht erfolgreich." );
     }
+    else
+        Framework::logLine( "Verbindung besteht." );
     return res == 1;
 }
 
@@ -415,6 +425,7 @@ bool KartenKlient::trenne() // trennt sich von dem Editor Server
             klient = klient->release();
         return 1;
     }
+    Framework::logLine( "Verbindung zum Karten Server wird getrennt..." );
     char serverReturn;
     klient->sendeEncrypted( "\4", 1 );
     klient->getNachrichtEncrypted( &serverReturn, 1 );

+ 21 - 3
KSGClient/Netzwerk/Klients/LoginK.cpp

@@ -1,6 +1,7 @@
 #include "../KSGKlient.h"
 #include "../KSGServer.h"
 #include "../Keys.h"
+#include <Globals.h>
 
 // Inhalt der LoginKlient Klase aus KSGKlient.h
 // Konstruktor 
@@ -107,6 +108,7 @@ bool LoginKlient::verbinde() // verbindet sich mit dem Login Server
     {
         char *msIp = getMainServerIp();
         unsigned short msPort = getMainServerPort();
+        Framework::logLine( "Verbinung mit Main Server wird hergestellt..." );
         klient = new Klient();
         int keyLen = 0;
         char *key = 0;
@@ -118,6 +120,7 @@ bool LoginKlient::verbinde() // verbindet sich mit dem Login Server
         delete[] key;
         if( !klient->verbinde( msPort, msIp ) )
         {
+            Framework::logLine( "ERROR: Server nicht erreichbar." );
             char *err = "Fehler beim verbinden mit dem Main Server. Bitte versuche es Später erneut.";
             delete[]fehler;
             fehler = new char[ textLength( err ) + 1 ];
@@ -142,6 +145,7 @@ bool LoginKlient::verbinde() // verbindet sich mit dem Login Server
             fehler = new char[ byte + 1 ];
             fehler[ byte ] = 0;
             klient->getNachrichtEncrypted( fehler, byte );
+            Framework::logLine( Text( "ERROR: " ) += fehler );
             klient->sendeEncrypted( "\3", 1 );
             klient->getNachrichtEncrypted( &serverReturn, 1 );
             klient->trenne();
@@ -174,6 +178,7 @@ bool LoginKlient::verbinde() // verbindet sich mit dem Login Server
             lsIpT->append( (int)lsIp[ 2 ] );
             lsIpT->append( "." );
             lsIpT->append( (int)lsIp[ 3 ] );
+            Framework::logLine( ( ( Text( "Zugeteilter Login Server:" ) += lsIpT->getText() ) += ":" ) += lsPort );
             int keyLen = 0;
             char *key = 0;
             Keys::getServerKey( &key, keyLen, Keys::LOGIN, Keys::SENDEN );
@@ -195,6 +200,7 @@ bool LoginKlient::verbinde() // verbindet sich mit dem Login Server
             fehler = new char[ byte + 1 ];
             fehler[ byte ] = 0;
             klient->getNachrichtEncrypted( fehler, byte );
+            Framework::logLine( Text( "ERROR: " ) += fehler );
             klient->sendeEncrypted( "\3", 1 );
             klient->getNachrichtEncrypted( &serverReturn, 1 );
             klient->trenne();
@@ -203,6 +209,7 @@ bool LoginKlient::verbinde() // verbindet sich mit dem Login Server
             return 0;
         }
     }
+    Framework::logLine( "Verbinung mit Login Server wird hergestellt..." );
     int keyLen = 0;
     char *key = 0;
     Keys::getServerKey( &key, keyLen, Keys::LOGIN, Keys::SENDEN );
@@ -226,6 +233,7 @@ bool LoginKlient::verbinde() // verbindet sich mit dem Login Server
                 fehler = new char[ byte + 1 ];
                 fehler[ byte ] = 0;
                 klient->getNachrichtEncrypted( fehler, byte );
+                Framework::logLine( Text( "ERROR: " ) += fehler );
                 klient->sendeEncrypted( "\3", 1 );
                 klient->getNachrichtEncrypted( &serverReturn, 1 );
                 klient->trenne();
@@ -239,10 +247,12 @@ bool LoginKlient::verbinde() // verbindet sich mit dem Login Server
             delete[] sl;
             verbunden = 1;
             cs.unlock();
+            Framework::logLine( "Erfolgreich mit Login Server verbunden." );
             return 1;
         }
         else
         {
+            Framework::logLine( "ERROR: Senden zum Server nicht erfolgreich." );
             char *err = "Der dir zugewiesene Login Server hat die Verbindung abgebrochen. Bitte versuche es Später erneut.";
             delete[]fehler;
             fehler = new char[ textLength( err ) + 1 ];
@@ -253,6 +263,7 @@ bool LoginKlient::verbinde() // verbindet sich mit dem Login Server
     }
     else
     {
+        Framework::logLine( "ERROR: Server nicht erreichbar." );
         char *err = "Der dir zugewiesene Login Server antwortet nicht. Bitte versuche es Später erneut.";
         delete[]fehler;
         fehler = new char[ textLength( err ) + 1 ];
@@ -419,11 +430,17 @@ bool LoginKlient::keepAlive() // Erh
     char res = 0;
     if( !cs.tryLock() )
         return 1;
-    klient->sendeEncrypted( "\x7", 1 );
-    klient->getNachrichtEncrypted( &res, 1 );
+    Framework::logLine( "Verbindungstest zum Login Server..." );
+    bool ok = klient->sendeEncrypted( "\x7", 1 );
+    ok &= klient->getNachrichtEncrypted( &res, 1 );
     cs.unlock();
-    if( res != 1 )
+    if( res != 1 || !ok )
+    {
+        Framework::logLine( "Verbindungsabbruch." );
         trenne();
+    }
+    else
+        Framework::logLine( "Verbindung besteht." );
     return res == 1;
 }
 
@@ -432,6 +449,7 @@ bool LoginKlient::trenne() // trennt sich von dem Login Server
     if( verbunden )
     {
         cs.lock();
+        Framework::logLine( "Verbindung zum Login Server wird getrennt..." );
         if( brauchKick )
             klient->sendeEncrypted( "\0", 1 );
         brauchKick = 0;

+ 21 - 3
KSGClient/Netzwerk/Klients/MinigameK.cpp

@@ -1,6 +1,7 @@
 #include "../KSGKlient.h"
 #include "../KSGServer.h"
 #include "../Keys.h"
+#include <Globals.h>
 
 // Inhalt der MinigameClient Klasse
 // Konstruktor
@@ -106,6 +107,7 @@ bool MinigameClient::verbinde()
     {
         char *msIp = getMainServerIp();
         unsigned short msPort = getMainServerPort();
+        Framework::logLine( "Verbinung mit Main Server wird hergestellt..." );
         klient = new Klient();
         int keyLen = 0;
         char *key = 0;
@@ -117,6 +119,7 @@ bool MinigameClient::verbinde()
         delete[] key;
         if( !klient->verbinde( msPort, msIp ) )
         {
+            Framework::logLine( "ERROR: Server nicht erreichbar." );
             char *err = "Fehler beim verbinden mit dem Main Server. Bitte versuche es Später erneut.";
             delete[]fehler;
             fehler = new char[ textLength( err ) + 1 ];
@@ -141,6 +144,7 @@ bool MinigameClient::verbinde()
             fehler = new char[ byte + 1 ];
             fehler[ byte ] = 0;
             klient->getNachrichtEncrypted( fehler, byte );
+            Framework::logLine( Text( "ERROR: " ) += fehler );
             klient->sendeEncrypted( "\3", 1 );
             klient->getNachrichtEncrypted( &serverReturn, 1 );
             klient->trenne();
@@ -173,6 +177,7 @@ bool MinigameClient::verbinde()
             lsIpT->append( (int)lsIp[ 2 ] );
             lsIpT->append( "." );
             lsIpT->append( (int)lsIp[ 3 ] );
+            Framework::logLine( ( ( Text( "Zugeteilter Minigame Server:" ) += lsIpT->getText() ) += ":" ) += lsPort );
             int keyLen = 0;
             char *key = 0;
             Keys::getServerKey( &key, keyLen, Keys::MINIGAME, Keys::SENDEN );
@@ -194,6 +199,7 @@ bool MinigameClient::verbinde()
             fehler = new char[ byte + 1 ];
             fehler[ byte ] = 0;
             klient->getNachrichtEncrypted( fehler, byte );
+            Framework::logLine( Text( "ERROR: " ) += fehler );
             klient->sendeEncrypted( "\3", 1 );
             klient->getNachrichtEncrypted( &serverReturn, 1 );
             klient->trenne();
@@ -202,6 +208,7 @@ bool MinigameClient::verbinde()
             return 0;
         }
     }
+    Framework::logLine( "Verbinung mit Minigame Server wird hergestellt..." );
     int keyLen = 0;
     char *key = 0;
     Keys::getServerKey( &key, keyLen, Keys::MINIGAME, Keys::SENDEN );
@@ -225,6 +232,7 @@ bool MinigameClient::verbinde()
                 fehler = new char[ byte + 1 ];
                 fehler[ byte ] = 0;
                 klient->getNachrichtEncrypted( fehler, byte );
+                Framework::logLine( Text( "ERROR: " ) += fehler );
                 klient->sendeEncrypted( "\3", 1 );
                 klient->getNachrichtEncrypted( &serverReturn, 1 );
                 klient->trenne();
@@ -238,10 +246,12 @@ bool MinigameClient::verbinde()
             delete[] sl;
             verbunden = 1;
             cs.unlock();
+            Framework::logLine( "Erfolgreich mit Minigame Server verbunden." );
             return 1;
         }
         else
         {
+            Framework::logLine( "ERROR: Senden zum Server nicht erfolgreich." );
             char *err = "Der dir zugewiesene Minigame Server hat die Verbindung abgebrochen. Bitte versuche es Später erneut.";
             delete[]fehler;
             fehler = new char[ textLength( err ) + 1 ];
@@ -252,6 +262,7 @@ bool MinigameClient::verbinde()
     }
     else
     {
+        Framework::logLine( "ERROR: Server nicht erreichbar." );
         char *err = "Der dir zugewiesene Minigame Server antwortet nicht. Bitte versuche es Später erneut.";
         delete[]fehler;
         fehler = new char[ textLength( err ) + 1 ];
@@ -570,11 +581,17 @@ bool MinigameClient::keepAlive()
     char res = 0;
     if( !cs.tryLock() )
         return 1;
-    klient->sendeEncrypted( "\x5", 1 );
-    klient->getNachrichtEncrypted( &res, 1 );
+    Framework::logLine( "Verbindungstest zum Minigame Server..." );
+    bool ok = klient->sendeEncrypted( "\x5", 1 );
+    ok &= klient->getNachrichtEncrypted( &res, 1 );
     cs.unlock();
-    if( res != 1 )
+    if( res != 1 || !ok )
+    {
+        Framework::logLine( "Verbindungsabbruch." );
         trenne();
+    }
+    else
+        Framework::logLine( "Verbindung besteht." );
     return res == 1;
 }
 
@@ -584,6 +601,7 @@ bool MinigameClient::trenne()
     if( verbunden )
     {
         cs.lock();
+        Framework::logLine( "Verbindung zum Minigame Server wird getrennt..." );
         if( needCapture )
             klient->sendeEncrypted( "\0\0\0\0", 4 );
         needCapture = 0;

+ 21 - 3
KSGClient/Netzwerk/Klients/NewsK.cpp

@@ -2,6 +2,7 @@
 #include "../KSGServer.h"
 #include <Datei.h>
 #include "../Keys.h"
+#include <Globals.h>
 
 // Inhalt der NewsKlients Klasse aus KSGKlient.h
 // Konstruktor
@@ -103,6 +104,7 @@ bool NewsKlient::verbinde() // verbindet ich mit dem News Server
     {
         char *msIp = getMainServerIp();
         unsigned short msPort = getMainServerPort();
+        Framework::logLine( "Verbinung mit Main Server wird hergestellt..." );
         klient = new Klient();
         int keyLen = 0;
         char *key = 0;
@@ -114,6 +116,7 @@ bool NewsKlient::verbinde() // verbindet ich mit dem News Server
         delete[] key;
         if( !klient->verbinde( msPort, msIp ) )
         {
+            Framework::logLine( "ERROR: Server nicht erreichbar." );
             fehler->setText( "Fehler beim verbinden mit dem Main Server. Bitte versuche es Später erneut." );
             klient = klient->release();
             delete[]msIp;
@@ -133,6 +136,7 @@ bool NewsKlient::verbinde() // verbindet ich mit dem News Server
             char *nachricht = new char[ län + 1 ];
             nachricht[ län ] = 0;
             klient->getNachrichtEncrypted( nachricht, län );
+            Framework::logLine( Text( "ERROR: " ) += nachricht );
             fehler->setText( nachricht );
             delete[]nachricht;
             klient->sendeEncrypted( "\3", 1 );
@@ -167,6 +171,7 @@ bool NewsKlient::verbinde() // verbindet ich mit dem News Server
             lsIpT->append( (int)lsIp[ 2 ] );
             lsIpT->append( "." );
             lsIpT->append( (int)lsIp[ 3 ] );
+            Framework::logLine( ( ( Text( "Zugeteilter News Server:" ) += lsIpT->getText() ) += ":" ) += lsPort );
             int keyLen = 0;
             char *key = 0;
             Keys::getServerKey( &key, keyLen, Keys::NEWS, Keys::SENDEN );
@@ -187,6 +192,7 @@ bool NewsKlient::verbinde() // verbindet ich mit dem News Server
             char *f = new char[ byte + 1 ];
             f[ byte ] = 0;
             klient->getNachrichtEncrypted( f, byte );
+            Framework::logLine( Text( "ERROR: " ) += f );
             fehler->setText( f );
             delete[]f;
             klient->sendeEncrypted( "\3", 1 );
@@ -197,6 +203,7 @@ bool NewsKlient::verbinde() // verbindet ich mit dem News Server
             return 0;
         }
     }
+    Framework::logLine( "Verbinung mit News Server wird hergestellt..." );
     int keyLen = 0;
     char *key = 0;
     Keys::getServerKey( &key, keyLen, Keys::NEWS, Keys::SENDEN );
@@ -220,6 +227,7 @@ bool NewsKlient::verbinde() // verbindet ich mit dem News Server
                 f[ byte ] = 0;
                 klient->getNachrichtEncrypted( f, byte );
                 fehler->setText( f );
+                Framework::logLine( Text( "ERROR: " ) += f );
                 delete[]f;
                 klient->sendeEncrypted( "\3", 1 );
                 klient->getNachrichtEncrypted( &serverReturn, 1 );
@@ -234,16 +242,19 @@ bool NewsKlient::verbinde() // verbindet ich mit dem News Server
             delete[] sl;
             verbunden = 1;
             cs.unlock();
+            Framework::logLine( "Erfolgreich mit News Server verbunden." );
             return 1;
         }
         else
         {
+            Framework::logLine( "ERROR: Senden zum Server nicht erfolgreich." );
             fehler->setText( "Der dir zugewiesene News Server hat die Verbindung abgebrochen. Bitte versuche es Später erneut." );
             klient = klient->release();
         }
     }
     else
     {
+        Framework::logLine( "ERROR: Server nicht erreichbar." );
         fehler->setText( "Der dir zugewiesene News Server antwortet nicht. Bitte versuche es Später erneut." );
         klient = klient->release();
     }
@@ -332,11 +343,17 @@ bool NewsKlient::keepAlive() // Erh
     char res = 0;
     if( !cs.tryLock() )
         return 1;
-    klient->sendeEncrypted( "\x6", 1 );
-    klient->getNachrichtEncrypted( &res, 1 );
+    Framework::logLine( "Verbindungstest zum News Server..." );
+    bool ok = klient->sendeEncrypted( "\x6", 1 );
+    ok &= klient->getNachrichtEncrypted( &res, 1 );
     cs.unlock();
-    if( res != 1 )
+    if( res != 1 || !ok )
+    {
+        Framework::logLine( "Verbindungsabbruch." );
         trenne();
+    }
+    else
+        Framework::logLine( "Verbindung besteht." );
     return res == 1;
 }
 
@@ -345,6 +362,7 @@ bool NewsKlient::trenne() // trennt sich von dem News Server
     if( !verbunden )
         return 1;
     cs.lock();
+    Framework::logLine( "Verbindung zum News Server wird getrennt..." );
     klient->sendeEncrypted( "\3", 1 );
     char serverReturn = 0;
     klient->getNachrichtEncrypted( &serverReturn, 1 );

+ 21 - 3
KSGClient/Netzwerk/Klients/RegisterK.cpp

@@ -1,6 +1,7 @@
 #include "../KSGKlient.h"
 #include "../KSGServer.h"
 #include "../Keys.h"
+#include <Globals.h>
 
 // Inhalt der RegisterKlient Klasse aus KSGKlient.h
 // Konstruktor 
@@ -109,6 +110,7 @@ bool RegisterKlient::verbinde() // verbindet ich mit dem Register Server
     {
         char *msIp = getMainServerIp();
         unsigned short msPort = getMainServerPort();
+        Framework::logLine( "Verbinung mit Main Server wird hergestellt..." );
         klient = new Klient();
         int keyLen = 0;
         char *key = 0;
@@ -120,6 +122,7 @@ bool RegisterKlient::verbinde() // verbindet ich mit dem Register Server
         delete[] key;
         if( !klient->verbinde( msPort, msIp ) )
         {
+            Framework::logLine( "ERROR: Server nicht erreichbar." );
             char *err = "Fehler beim verbinden mit dem Main Server. Bitte versuche es Später erneut.";
             delete[]fehler;
             fehler = new char[ textLength( err ) + 1 ];
@@ -144,6 +147,7 @@ bool RegisterKlient::verbinde() // verbindet ich mit dem Register Server
             fehler = new char[ byte + 1 ];
             fehler[ byte ] = 0;
             klient->getNachrichtEncrypted( fehler, byte );
+            Framework::logLine( Text( "ERROR: " ) += fehler );
             klient->sendeEncrypted( "\3", 1 );
             klient->getNachrichtEncrypted( &serverReturn, 1 );
             klient->trenne();
@@ -176,6 +180,7 @@ bool RegisterKlient::verbinde() // verbindet ich mit dem Register Server
             lsIpT->append( (int)lsIp[ 2 ] );
             lsIpT->append( "." );
             lsIpT->append( (int)lsIp[ 3 ] );
+            Framework::logLine( ( ( Text( "Zugeteilter Register Server:" ) += lsIpT->getText() ) += ":" ) += lsPort );
             int keyLen = 0;
             char *key = 0;
             Keys::getServerKey( &key, keyLen, Keys::REGISTER, Keys::SENDEN );
@@ -197,6 +202,7 @@ bool RegisterKlient::verbinde() // verbindet ich mit dem Register Server
             fehler = new char[ byte + 1 ];
             fehler[ byte ] = 0;
             klient->getNachrichtEncrypted( fehler, byte );
+            Framework::logLine( Text( "ERROR: " ) += fehler );
             klient->sendeEncrypted( "\3", 1 );
             klient->getNachrichtEncrypted( &serverReturn, 1 );
             klient->trenne();
@@ -205,6 +211,7 @@ bool RegisterKlient::verbinde() // verbindet ich mit dem Register Server
             return 0;
         }
     }
+    Framework::logLine( "Verbinung mit Register Server wird hergestellt..." );
     int keyLen = 0;
     char *key = 0;
     Keys::getServerKey( &key, keyLen, Keys::REGISTER, Keys::SENDEN );
@@ -228,6 +235,7 @@ bool RegisterKlient::verbinde() // verbindet ich mit dem Register Server
                 fehler = new char[ byte + 1 ];
                 fehler[ byte ] = 0;
                 klient->getNachrichtEncrypted( fehler, byte );
+                Framework::logLine( Text( "ERROR: " ) += fehler );
                 klient->sendeEncrypted( "\3", 1 );
                 klient->getNachrichtEncrypted( &serverReturn, 1 );
                 klient->trenne();
@@ -241,10 +249,12 @@ bool RegisterKlient::verbinde() // verbindet ich mit dem Register Server
             delete[] sl;
             verbunden = 1;
             cs.unlock();
+            Framework::logLine( "Erfolgreich mit Register Server verbunden." );
             return 1;
         }
         else
         {
+            Framework::logLine( "ERROR: Senden zum Server nicht erfolgreich." );
             char *err = "Der dir zugewiesene Registrierungs Server hat die Verbindung abgebrochen. Bitte versuche es Später erneut.";
             delete[]fehler;
             fehler = new char[ textLength( err ) + 1 ];
@@ -255,6 +265,7 @@ bool RegisterKlient::verbinde() // verbindet ich mit dem Register Server
     }
     else
     {
+        Framework::logLine( "ERROR: Server nicht erreichbar." );
         char *err = "Der dir zugewiesene Registrierungs Server antwortet nicht. Bitte versuche es Später erneut.";
         delete[]fehler;
         fehler = new char[ textLength( err ) + 1 ];
@@ -894,11 +905,17 @@ bool RegisterKlient::keepAlive() // Erh
     char res = 0;
     if( !cs.tryLock() )
         return 1;
-    klient->sendeEncrypted( "\xF", 1 );
-    klient->getNachrichtEncrypted( &res, 1 );
+    Framework::logLine( "Verbindungstest zum Register Server..." );
+    bool ok = klient->sendeEncrypted( "\xF", 1 );
+    ok &= klient->getNachrichtEncrypted( &res, 1 );
     cs.unlock();
-    if( res != 1 )
+    if( res != 1 || !ok )
+    {
+        Framework::logLine( "Verbindungsabbruch." );
         trenne();
+    }
+    else
+        Framework::logLine( "Verbindung besteht." );
     return res == 1;
 }
 
@@ -907,6 +924,7 @@ bool RegisterKlient::trenne() // trennt sich von dem Register Server
     if( verbunden )
     {
         cs.lock();
+        Framework::logLine( "Verbindung zum Register Server wird getrennt..." );
         if( brauchSchlüssel )
         {
             char byte = -1;

+ 17 - 3
KSGClient/Netzwerk/Klients/ShopK.cpp

@@ -2,6 +2,7 @@
 #include "../KSGServer.h"
 #include <Datei.h>
 #include "../Keys.h"
+#include <Globals.h>
 
 // Inhalt der ShopKlient Klasse aus KSGKtient.h
 // Konstruktor
@@ -95,6 +96,8 @@ bool ShopKlient::verbinde( int port, char *ip ) // verbindet sich mit vorgegeben
 {
     int keyLen = 0;
     char *key = 0;
+    Framework::logLine( ( ( Text( "Zugeteilter Shop Server:" ) += ip ) += ":" ) += port );
+    Framework::logLine( "Verbinung mit Shop Server wird hergestellt..." );
     Keys::getServerKey( &key, keyLen, Keys::SHOP, Keys::SENDEN );
     klient->setSendeKey( key, keyLen );
     delete[] key;
@@ -115,6 +118,7 @@ bool ShopKlient::verbinde( int port, char *ip ) // verbindet sich mit vorgegeben
                 char *f = new char[ byte + 1 ];
                 f[ byte ] = 0;
                 klient->getNachrichtEncrypted( f, byte );
+                Framework::logLine( Text( "ERROR: " ) += f );
                 fehler->setText( f );
                 delete[]f;
                 return 0;
@@ -124,16 +128,19 @@ bool ShopKlient::verbinde( int port, char *ip ) // verbindet sich mit vorgegeben
             klient->setSendeKey( sl, slLän );
             klient->setEmpfangKey( sl, slLän );
             delete[] sl;
+            Framework::logLine( "Erfolgreich mit Shop Server verbunden." );
             return 1;
         }
         else
         {
+            Framework::logLine( "ERROR: Senden zum Server nicht moeglich." );
             fehler->setText( "Der dir zugewiesene Shop Server hat die Verbindung abgebrochen. Bitte versuche es Später erneut." );
             klient = klient->release();
         }
     }
     else
     {
+        Framework::logLine( "ERROR: Server nicht erreichbar." );
         fehler->setText( "Der dir zugewiesene Shop Server antwortet nicht. Bitte versuche es Später erneut." );
         klient = klient->release();
     }
@@ -1101,11 +1108,17 @@ bool ShopKlient::keepAlive() // Erh
     char res = 0;
     if( !cs.tryLock() )
         return 1;
-    klient->sendeEncrypted( "\x15", 1 );
-    klient->getNachrichtEncrypted( &res, 1 );
+    Framework::logLine( "Verbindungstest zum Shop Server..." );
+    bool ok = klient->sendeEncrypted( "\x15", 1 );
+    ok &= klient->getNachrichtEncrypted( &res, 1 );
     cs.unlock();
-    if( res != 1 )
+    if( res != 1 || !ok )
+    {
+        Framework::logLine( "Verbindungsabbruch." );
         trenne();
+    }
+    else
+        Framework::logLine( "Verbindung besteht." );
     return res == 1;
 }
 
@@ -1114,6 +1127,7 @@ bool ShopKlient::trenne() // trennt sich von dem Shop Server
     if( !verbunden )
         return 1;
     cs.lock();
+    Framework::logLine( "Verbindung zum Shop Server wird getrennt..." );
     klient->sendeEncrypted( "\3", 1 );
     char serverReturn = 0;
     klient->getNachrichtEncrypted( &serverReturn, 1 );

+ 18 - 3
KSGClient/Netzwerk/Klients/SpielK.cpp

@@ -2,6 +2,7 @@
 #include "../KSGServer.h"
 #include "../../Global/Variablen.h"
 #include "../Keys.h"
+#include <Globals.h>
 
 // Inhalt der SpielKlient Klasse aus KSGKlient.h
 // Konstruktor
@@ -56,6 +57,8 @@ bool SpielKlient::verbinde( unsigned short port, char *ip ) // verbindet ich mit
         senden = new Klient();
     int keyLen = 0;
     char *key = 0;
+    Framework::logLine( ( ( Text( "Zugeteilter Spiel Server:" ) += ip ) += ":" ) += port );
+    Framework::logLine( "Verbinung mit Spiel Server wird hergestellt..." );
     Keys::getServerKey( &key, keyLen, Keys::SPIEL, Keys::SENDEN );
     senden->setSendeKey( key, keyLen );
     delete[] key;
@@ -79,6 +82,7 @@ bool SpielKlient::verbinde( unsigned short port, char *ip ) // verbindet ich mit
                     char *f = new char[ byte + 1 ];
                     f[ byte ] = 0;
                     senden->getNachrichtEncrypted( f, byte );
+                    Framework::logLine( Text( "ERROR: " ) += f );
                     fehler->setText( f );
                     delete[]f;
                 }
@@ -109,10 +113,12 @@ bool SpielKlient::verbinde( unsigned short port, char *ip ) // verbindet ich mit
                 start();
                 verbunden = 1;
                 cs.unlock();
+                Framework::logLine( "Erfolgreich mit Spiel Server verbunden." );
                 return 1;
             }
             else
             {
+                Framework::logLine( "ERROR: Empfang Server nicht erreichbar." );
                 fehler->setText( "Der dir zugewiesene Spiel Server kann dir keine Nachrichten senden." );
                 cs.unlock();
                 return 1;
@@ -120,12 +126,14 @@ bool SpielKlient::verbinde( unsigned short port, char *ip ) // verbindet ich mit
         }
         else
         {
+            Framework::logLine( "ERROR: Senden zum Server nicht moeglich." );
             fehler->setText( "Der dir zugewiesene Spiel Server hat die Verbindung abgebrochen. Bitte versuche es Später erneut." );
             senden = senden->release();
         }
     }
     else
     {
+        Framework::logLine( "ERROR: Server nicht erreichbar." );
         fehler->setText( "Der dir zugewiesene Spiel Server antwortet nicht. Bitte versuche es Später erneut." );
         senden = senden->release();
     }
@@ -289,11 +297,17 @@ bool SpielKlient::keepAlive() // Erh
     char res = 0;
     if( !cs.tryLock() )
         return 1;
-    senden->sendeEncrypted( "\xF", 1 );
-    senden->getNachrichtEncrypted( &res, 1 );
+    Framework::logLine( "Verbindungstest zum Spiel Server..." );
+    bool ok = senden->sendeEncrypted( "\xF", 1 );
+    ok &= senden->getNachrichtEncrypted( &res, 1 );
     cs.unlock();
-    if( res != 1 )
+    if( res != 1 || !ok )
+    {
+        Framework::logLine( "Verbindungsabbruch." );
         trenne();
+    }
+    else
+        Framework::logLine( "Verbindung besteht." );
     return res == 1;
 }
 
@@ -303,6 +317,7 @@ bool SpielKlient::trenne() // trennt sich von dem Chat Server
         return 1;
     verbunden = 0;
     cs.lock();
+    Framework::logLine( "Verbindung zum Spiel Server wird getrennt..." );
     senden->sendeEncrypted( "\3", 1 );
     char serverReturn = 0;
     senden->getNachrichtEncrypted( &serverReturn, 1 );

+ 125 - 118
KSGClient/Start/Start.cpp

@@ -14,23 +14,25 @@
 #include <iostream>
 #include <vector>
 #include <sstream>
+#include <InitDatei.h>
+#include <TexturList.h>
 
 void fensterVS( void *p, void *f )
 {
-	PostQuitMessage( 0 );
+    PostQuitMessage( 0 );
 }
 
 bool fensterME( void *p, void *f, MausEreignis me )
 {
-	return 1;
+    return 1;
 }
 
 bool fensterTE( void *p, void *f, TastaturEreignis te )
 {
 #ifdef _DEBUG
-	std::cout.flush();
+    std::cout.flush();
 #endif
-	return 1;
+    return 1;
 }
 
 #ifdef _DEBUG
@@ -38,68 +40,67 @@ template<typename TChar, typename TTraits>
 class OutputDebugStringBuf : public std::basic_stringbuf<TChar, TTraits>
 {
 public:
-	explicit OutputDebugStringBuf() : _buffer( 256 )
-	{
-		setg( nullptr, nullptr, nullptr );
-		setp( _buffer.data(), _buffer.data(), _buffer.data() + _buffer.size() );
-	}
-
-	~OutputDebugStringBuf()
-	{
-	}
-
-	static_assert( std::is_same<TChar, char>::value || std::is_same<TChar, wchar_t>::value, "OutputDebugStringBuf only supports char and wchar_t types" );
-
-	int sync() try
-	{
-		MessageOutputer<TChar, TTraits>()( pbase(), pptr() );
-		setp( _buffer.data(), _buffer.data(), _buffer.data() + _buffer.size() );
-		return 0;
-	}
-	catch( ... )
-	{
-		return -1;
-	}
-
-	int overflow( int c = TTraits::eof() )
-	{
-		auto syncRet = sync();
-		if( c != TTraits::eof() )
-		{
-			_buffer[ 0 ] = c;
-			setp( _buffer.data(), _buffer.data() + 1, _buffer.data() + _buffer.size() );
-		}
-		return syncRet == -1 ? TTraits::eof() : 0;
-	}
+    explicit OutputDebugStringBuf() : _buffer( 256 )
+    {
+        setg( nullptr, nullptr, nullptr );
+        setp( _buffer.data(), _buffer.data(), _buffer.data() + _buffer.size() );
+    }
+
+    ~OutputDebugStringBuf()
+    {}
+
+    static_assert( std::is_same<TChar, char>::value || std::is_same<TChar, wchar_t>::value, "OutputDebugStringBuf only supports char and wchar_t types" );
+
+    int sync() try
+    {
+        MessageOutputer<TChar, TTraits>()( pbase(), pptr() );
+        setp( _buffer.data(), _buffer.data(), _buffer.data() + _buffer.size() );
+        return 0;
+    }
+    catch( ... )
+    {
+        return -1;
+    }
+
+    int overflow( int c = TTraits::eof() )
+    {
+        auto syncRet = sync();
+        if( c != TTraits::eof() )
+        {
+            _buffer[ 0 ] = c;
+            setp( _buffer.data(), _buffer.data() + 1, _buffer.data() + _buffer.size() );
+        }
+        return syncRet == -1 ? TTraits::eof() : 0;
+    }
 
 
 private:
-	std::vector<TChar>		_buffer;
-
-	template<typename TChar, typename TTraits>
-	struct MessageOutputer;
-
-	template<>
-	struct MessageOutputer<char, std::char_traits<char>>
-	{
-		template<typename TIterator>
-		void operator()( TIterator begin, TIterator end ) const
-		{
-			std::string s( begin, end );
-			OutputDebugStringA( s.c_str() );
-		}
-	};
-
-	template<>
-	struct MessageOutputer<wchar_t, std::char_traits<wchar_t>>
-	{
-		template<typename TIterator>
-		void operator()( TIterator begin, TIterator end ) const
-		{
-			std::wstring s( begin, end );
-			OutputDebugStringW( s.c_str() );
-		}
-	};
+    std::vector<TChar>		_buffer;
+
+    template<typename TChar, typename TTraits>
+    struct MessageOutputer;
+
+    template<>
+    struct MessageOutputer<char, std::char_traits<char>>
+    {
+        template<typename TIterator>
+        void operator()( TIterator begin, TIterator end ) const
+        {
+            std::string s( begin, end );
+            OutputDebugStringA( s.c_str() );
+        }
+    };
+
+    template<>
+    struct MessageOutputer<wchar_t, std::char_traits<wchar_t>>
+    {
+        template<typename TIterator>
+        void operator()( TIterator begin, TIterator end ) const
+        {
+            std::wstring s( begin, end );
+            OutputDebugStringW( s.c_str() );
+        }
+    };
 
 };
 #endif
@@ -107,76 +108,82 @@ private:
 int KSGStart Framework::Start( Startparam p )
 {
 #ifdef _DEBUG
-	static OutputDebugStringBuf<char, std::char_traits<char>> charDebugOutput;
-	std::cout.rdbuf( &charDebugOutput );
+    static OutputDebugStringBuf<char, std::char_traits<char>> charDebugOutput;
+    std::cout.rdbuf( &charDebugOutput );
 #endif
-	Network::Start( 50 );
-
-	Punkt bildschirmGröße = BildschirmGröße();
-	bildschirmGröße.x++;
-	bildschirmGröße.y++;
-	
-	WNDCLASS wc = F_Normal( p.hinst );
-	wc.lpszClassName = "Game Client";
-
-    /*WFenster *fenster = new WFenster();
-    fenster->erstellen( WS_OVERLAPPEDWINDOW, wc );
-    fenster->setSize( 700, 770 );
-    fenster->setPosition( Bildschirmmitte( fenster->getThis() ) );
-    fenster->setAnzeigeModus( 1 );
-    fenster->setVSchließAktion( fensterVS );
+    Network::Start( 50 );
+
+    InitDatei init( "data/optionen.ini" );
+    init.laden();
+    if( init.wertExistiert( "Log" ) )
+        Framework::setLogEnabled( init.zWert( "Log" )->istGleich( "1" ) );
+    Framework::logLine( "Anwendung wird gestartet..." );
+
+    Punkt bildschirmGröße = BildschirmGröße();
+    bildschirmGröße.x++;
+    bildschirmGröße.y++;
+    Framework::logLine( ( ( Text( "Ermittelte Bildschirmgroesse: " ) += ( bildschirmGröße.x - 1 ) ) += "x" ) += ( bildschirmGröße.y - 1 ) );
+
+    WNDCLASS wc = F_Normal( p.hinst );
+    wc.lpszClassName = "Game Client";
+
+    Framework::logLine( "Grafische Benutzeroberflaeche wird erstellt..." );
+    WFenster *fenster = new WFenster();
+    fenster->erstellen( WS_POPUP, wc );
+    fenster->setPosition( Punkt( 0, 0 ) );
+    fenster->setSize( bildschirmGröße );
     fenster->setMausAktion( fensterME );
     fenster->setTastaturAktion( fensterTE );
+    fenster->setVSchließAktion( fensterVS );
 
     Bildschirm *bildschirm = new Bildschirm3D( fenster->getThis() );
-    fenster->setBildschirm( bildschirm->getThis() );*/
-	WFenster *fenster = new WFenster();
-	fenster->erstellen( WS_POPUP, wc );
-	fenster->setPosition( Punkt( 0, 0 ) );
-	fenster->setSize( bildschirmGröße );
-	fenster->setMausAktion( fensterME );
-	fenster->setTastaturAktion( fensterTE );
-	fenster->setVSchließAktion( fensterVS );
-    
-	Bildschirm *bildschirm = new Bildschirm3D( fenster->getThis() );
-	fenster->setBildschirm( bildschirm->getThis() );
+    fenster->setBildschirm( bildschirm->getThis() );
     fenster->setAnzeigeModus( 1 );
-	fenster->setFokus();
-	bildschirm->update();
-	bildschirm->render();
+    fenster->setFokus();
+    bildschirm->update();
+    bildschirm->render();
+
+    Framework::logLine( "Schrift wird geladen..." );
+    LTDSDatei *schriftDatei = new LTDSDatei();
+    schriftDatei->setPfad( new Text( "data/schriften/normal.ltds" ) );
+    schriftDatei->leseDaten();
+    Schrift *schrift = schriftDatei->ladeSchrift();
+    schriftDatei = schriftDatei->release();
+
+    Render *render = new Render( schrift->getThis() );
+    render->setBildschirm( bildschirm->getThis() );
 
-	LTDSDatei *schriftDatei = new LTDSDatei();
-	schriftDatei->setPfad( new Text( "data/schriften/normal.ltds" ) );
-	schriftDatei->leseDaten();
-	Schrift *schrift = schriftDatei->ladeSchrift();
-	schriftDatei = schriftDatei->release();
+    Framework::logLine( "Globale Variablen werden initialisiert..." );
+    initVariables( schrift, bildschirm );
 
-	Render *render = new Render( schrift->getThis() );
-	render->setBildschirm( bildschirm->getThis() );
+    Framework::logLine( "Zeichen Thread wird gestartet..." );
+    render->start();
 
-	initVariables( schrift, bildschirm );
+    Framework::logLine( "Nachrichtenschleife wird ausgefuehrt..." );
+    StartNachrichtenSchleife();
 
-	render->start();
+    Framework::logLine( "Zeichen Thread wird beendet..." );
+    render->beenden();
+    render = render->release();
 
-	StartNachrichtenSchleife();
+    bildschirm->removeMember( vorLogin->zFenster() );
+    bildschirm->removeMember( nachLogin );
 
-	render->beenden();
-	render = render->release();
+    Framework::logLine( "Speicher wird freigegeben..." );
+    releaseVariables();
+    schrift = schrift->release();
 
-	bildschirm->removeMember( vorLogin->zFenster() );
-	bildschirm->removeMember( nachLogin );
+    Framework::zTexturRegister()->leeren();
+    bildschirm = bildschirm->release();
+    fenster->setBildschirm( 0 );
+    fenster->zerstören();
+    fenster = fenster->release();
 
-	releaseVariables();
-	schrift = schrift->release();
+    Network::Exit();
 
-	bildschirm = bildschirm->release();
-	fenster->setBildschirm( 0 );
-	fenster->zerstören();
-	fenster = fenster->release();
+    DateiPfadErstellen( new Text( "data/tmp/keinabsturz" ) );
 
-	Network::Exit();
-	
-	DateiPfadErstellen( new Text( "data/tmp/keinabsturz" ) );
+    Framework::logLine( "Programm wurde ordnungsgemaess beendet." );
 
-	return 0;
+    return 0;
 }