1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495 |
- #ifndef Klient_H
- #define Klient_H
- #include "Network.h"
- #include <openssl/bio.h>
- #include <openssl/ssl.h>
- namespace Framework
- {
- namespace Encryption
- {
- class Key;
- }
- class Text;
- }
- using namespace Framework;
- namespace Network
- {
- class Klient; // aus dieser Datei
- class Klient
- {
- private:
- SOCKET sock;
- sockaddr_in server;
- Encryption::Key *sendeKey;
- Encryption::Key *empfangKey;
- int downStreamBytes;
- int upStreamBytes;
- int ref;
- public:
- // Konstruktor
- __declspec( dllexport ) Klient();
- // Destruktor
- __declspec( dllexport ) ~Klient();
- // nicht constant
- __declspec( dllexport ) void setSendeKeyZ( Encryption::Key *key ); // Setzt den Schlüssel fürs Senden
- __declspec( dllexport ) void setEmpfangKeyZ( Encryption::Key *key ); // Setzt den Schlüssel fürs Empfangen
- __declspec( dllexport ) void setSendeKey( char *key, int len ); // Setzt den Schlüssel fürs Senden
- __declspec( dllexport ) void setEmpfangKey( char *key, int len ); // Setzt den Schlüssel fürs Empfangen
- __declspec( dllexport ) bool verbinde( unsigned short port, const char *ip ); // verbindet mit Server
- __declspec( dllexport ) bool sende( const char *nachricht, int len ); // sendet zum Server
- __declspec( dllexport ) bool getNachricht( char *nachricht, int len ); // empfängt Nachricht
- __declspec( dllexport ) bool sendeEncrypted( const char *nachricht, int len ); // sendet zum Server
- __declspec( dllexport ) bool getNachrichtEncrypted( char *nachricht, int len ); // empfängt Nachricht
- __declspec( dllexport ) int getDownloadBytes( bool reset ); // gibt die anzahl von empfangen bytes zurück
- __declspec( dllexport ) int getUploadBytes( bool reset ); // gibt die anzahl von versendeter bytes zurück
- __declspec( dllexport ) bool trenne(); // Trennt die Verbindung zum Server
- // constant
- __declspec( dllexport ) bool hatNachricht( int zeit ); // Wartet eine Zeit Lang auf eine Nachricht
- __declspec( dllexport ) unsigned short getServerPort() const; // gibt den Port des Servers zurück
- __declspec( dllexport ) const char *getServerIp() const; // gibt die Ip des Servers zurück
- // Reference Counting
- __declspec( dllexport ) Klient *getThis();
- __declspec( dllexport ) Klient *release();
- };
- class SSLKlient
- {
- private:
- unsigned short port;
- Text* ip;
- SSL_CTX* ctx;
- SSL* ssl;
- BIO* bio;
- int downStreamBytes;
- int upStreamBytes;
- bool connected;
- int ref;
- public:
- // Konstruktor
- __declspec( dllexport ) SSLKlient();
- // Destruktor
- __declspec( dllexport ) ~SSLKlient();
- __declspec( dllexport ) bool verbinde( unsigned short port, const char *ip ); // verbindet mit Server
- __declspec( dllexport ) bool sende( const char *nachricht, int len ); // sendet zum Server
- __declspec( dllexport ) bool getNachricht( char *nachricht, int len ); // empfängt Nachricht
- __declspec( dllexport ) int getDownloadBytes( bool reset ); // gibt die anzahl von empfangen bytes zurück
- __declspec( dllexport ) int getUploadBytes( bool reset ); // gibt die anzahl von versendeter bytes zurück
- __declspec( dllexport ) bool trenne(); // Trennt die Verbindung zum Server
- // constant
- __declspec( dllexport ) unsigned short getServerPort() const; // gibt den Port des Servers zurück
- __declspec( dllexport ) const char *getServerIp() const; // gibt die Ip des Servers zurück
- // Reference Counting
- __declspec( dllexport ) SSLKlient *getThis();
- __declspec( dllexport ) SSLKlient *release();
- };
- }
- #endif
|