|
@@ -37,35 +37,35 @@ Klient::~Klient()
|
|
|
}
|
|
|
|
|
|
// nicht constant
|
|
|
-void Klient::setSendeKeyZ( Encryption::Key *key ) // Setzt den Key fürs Senden
|
|
|
+void Klient::setSendeKeyZ( Encryption::Key* key ) // Setzt den Key fürs Senden
|
|
|
{
|
|
|
if( sendeKey )
|
|
|
sendeKey->release();
|
|
|
sendeKey = key;
|
|
|
}
|
|
|
|
|
|
-void Klient::setEmpfangKeyZ( Encryption::Key *key ) // Setzt den Key fürs Empfangen
|
|
|
+void Klient::setEmpfangKeyZ( Encryption::Key* key ) // Setzt den Key fürs Empfangen
|
|
|
{
|
|
|
if( empfangKey )
|
|
|
empfangKey->release();
|
|
|
empfangKey = key;
|
|
|
}
|
|
|
|
|
|
-void Klient::setSendeKey( char *key, int len ) // Setzt den Key fürs Senden
|
|
|
+void Klient::setSendeKey( char* key, int len ) // Setzt den Key fürs Senden
|
|
|
{
|
|
|
if( !sendeKey )
|
|
|
sendeKey = new Encryption::Key();
|
|
|
sendeKey->setKey( key, len );
|
|
|
}
|
|
|
|
|
|
-void Klient::setEmpfangKey( char *key, int len ) // Setzt den Key fürs Empfangen
|
|
|
+void Klient::setEmpfangKey( char* key, int len ) // Setzt den Key fürs Empfangen
|
|
|
{
|
|
|
if( !empfangKey )
|
|
|
empfangKey = new Encryption::Key();
|
|
|
empfangKey->setKey( key, len );
|
|
|
}
|
|
|
|
|
|
-bool Klient::verbinde( unsigned short port, const char *ip ) // verbindet mit Server
|
|
|
+bool Klient::verbinde( unsigned short port, const char* ip ) // verbindet mit Server
|
|
|
{
|
|
|
if( sendeKey )
|
|
|
sendeKey->setPos( 0 );
|
|
@@ -77,19 +77,19 @@ bool Klient::verbinde( unsigned short port, const char *ip ) // verbindet mit Se
|
|
|
long sIp = inet_addr( ip ); // ip addresse
|
|
|
if( sIp == INADDR_NONE )
|
|
|
{
|
|
|
- struct hostent *pHostInfo = gethostbyname( ip );
|
|
|
+ struct hostent* pHostInfo = gethostbyname( ip );
|
|
|
if( pHostInfo == 0 )
|
|
|
return 0;
|
|
|
- sIp = *(long *)pHostInfo->h_addr_list[ 0 ];
|
|
|
+ sIp = *(long*)pHostInfo->h_addr_list[ 0 ];
|
|
|
}
|
|
|
- memcpy( (char *)&server.sin_addr, &sIp, sizeof( sIp ) );
|
|
|
+ memcpy( (char*)&server.sin_addr, &sIp, sizeof( sIp ) );
|
|
|
server.sin_port = htons( port ); // port
|
|
|
- if( connect( sock, (struct sockaddr *)&server, sizeof( server ) ) < 0 ) // verbinden
|
|
|
+ if( connect( sock, (struct sockaddr*)&server, sizeof( server ) ) < 0 ) // verbinden
|
|
|
return 0; // Fehler
|
|
|
return 1;
|
|
|
}
|
|
|
|
|
|
-bool Klient::sende( const char *nachricht, int len ) // sendet zum Server
|
|
|
+bool Klient::sende( const char* nachricht, int len ) // sendet zum Server
|
|
|
{
|
|
|
int ll = 0;
|
|
|
while( len > 0 )
|
|
@@ -108,7 +108,7 @@ bool Klient::sende( const char *nachricht, int len ) // sendet zum Server
|
|
|
return 1;
|
|
|
}
|
|
|
|
|
|
-bool Klient::getNachricht( char *nachricht, int len ) // empfängt Nachricht
|
|
|
+bool Klient::getNachricht( char* nachricht, int len ) // empfängt Nachricht
|
|
|
{
|
|
|
int ll = 0;
|
|
|
while( len > 0 )
|
|
@@ -123,12 +123,12 @@ bool Klient::getNachricht( char *nachricht, int len ) // empf
|
|
|
return 1;
|
|
|
}
|
|
|
|
|
|
-bool Klient::sendeEncrypted( const char *nachricht, int len ) // sendet zum Server
|
|
|
+bool Klient::sendeEncrypted( const char* nachricht, int len ) // sendet zum Server
|
|
|
{
|
|
|
if( !sendeKey )
|
|
|
return sende( nachricht, len );
|
|
|
- Encryption::Bytes *n = new Encryption::Bytes( nachricht, len );
|
|
|
- sendeKey->codieren( dynamic_cast<Framework::Encryption::Bytes *>( n->getThis() ) );
|
|
|
+ Encryption::Bytes* n = new Encryption::Bytes( nachricht, len );
|
|
|
+ sendeKey->codieren( dynamic_cast<Framework::Encryption::Bytes*>(n->getThis()) );
|
|
|
int ll = 0;
|
|
|
while( len > 0 )
|
|
|
{
|
|
@@ -150,7 +150,7 @@ bool Klient::sendeEncrypted( const char *nachricht, int len ) // sendet zum Serv
|
|
|
return 1;
|
|
|
}
|
|
|
|
|
|
-bool Klient::getNachrichtEncrypted( char *nachricht, int len ) // empfängt Nachricht
|
|
|
+bool Klient::getNachrichtEncrypted( char* nachricht, int len ) // empfängt Nachricht
|
|
|
{
|
|
|
if( !empfangKey )
|
|
|
return getNachricht( nachricht, len );
|
|
@@ -163,7 +163,7 @@ bool Klient::getNachrichtEncrypted( char *nachricht, int len ) // empf
|
|
|
len -= l;
|
|
|
ll += l;
|
|
|
}
|
|
|
- Encryption::Bytes *n = new Encryption::Bytes();
|
|
|
+ Encryption::Bytes* n = new Encryption::Bytes();
|
|
|
n->setBytesZ( nachricht, ll );
|
|
|
empfangKey->decodieren( n );
|
|
|
downStreamBytes += ll;
|
|
@@ -215,11 +215,20 @@ unsigned short Klient::getServerPort() const // gibt den Port zur
|
|
|
return htons( server.sin_port );
|
|
|
}
|
|
|
|
|
|
-const char *Klient::getServerIp() const // gibt die Ip zurück
|
|
|
+const char* Klient::getServerIp() const // gibt die Ip zurück
|
|
|
{
|
|
|
return inet_ntoa( server.sin_addr );
|
|
|
}
|
|
|
|
|
|
+bool Klient::waitForNextMessage() const // wartet bis es etwas zu empfangen gibt
|
|
|
+{
|
|
|
+ char c;
|
|
|
+ int l = (int)recv( sock, &c, 1, MSG_WAITALL | MSG_PEEK );
|
|
|
+ if( l <= 0 )
|
|
|
+ return 0; // Fehler
|
|
|
+ return 1;
|
|
|
+}
|
|
|
+
|
|
|
|
|
|
// Inhalt der SSLKlient Klasse aus Klient.h
|
|
|
// Konstruktor
|
|
@@ -252,7 +261,7 @@ SSLKlient::~SSLKlient()
|
|
|
#endif
|
|
|
}
|
|
|
|
|
|
-bool SSLKlient::verbinde( unsigned short port, const char *ip ) // verbindet mit Server
|
|
|
+bool SSLKlient::verbinde( unsigned short port, const char* ip ) // verbindet mit Server
|
|
|
{
|
|
|
this->port = port;
|
|
|
if( this->ip )
|
|
@@ -268,7 +277,7 @@ bool SSLKlient::verbinde( unsigned short port, const char *ip ) // verbindet mit
|
|
|
return connected;
|
|
|
}
|
|
|
|
|
|
-bool SSLKlient::sende( const char *nachricht, int len ) // sendet zum Server
|
|
|
+bool SSLKlient::sende( const char* nachricht, int len ) // sendet zum Server
|
|
|
{
|
|
|
int ll = 0;
|
|
|
while( len > 0 )
|
|
@@ -283,7 +292,7 @@ bool SSLKlient::sende( const char *nachricht, int len ) // sendet zum Server
|
|
|
return 1;
|
|
|
}
|
|
|
|
|
|
-bool SSLKlient::getNachricht( char *nachricht, int len ) // empfängt Nachricht
|
|
|
+bool SSLKlient::getNachricht( char* nachricht, int len ) // empfängt Nachricht
|
|
|
{
|
|
|
if( !connected )
|
|
|
return 0;
|
|
@@ -338,7 +347,7 @@ unsigned short SSLKlient::getServerPort() const // gibt den Port des Servers zur
|
|
|
return port;
|
|
|
}
|
|
|
|
|
|
-const char *SSLKlient::getServerIp() const // gibt die Ip des Servers zurück
|
|
|
+const char* SSLKlient::getServerIp() const // gibt die Ip des Servers zurück
|
|
|
{
|
|
|
return ip->getText();
|
|
|
}
|