123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899 |
- #ifndef Klient_H
- #define Klient_H
- #include "Network.h"
- #ifndef HEADER_OPENSSL_TYPES_H
- struct SSL_CTX;
- struct SSL;
- struct BIO;
- #endif
- namespace Framework
- {
- namespace Encryption
- {
- class Key;
- }
- class Text;
- }
- using namespace Framework;
- namespace Network
- {
- class Klient; // aus dieser Datei
- class Klient : public EncryptedVerbindung
- {
- 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 ) override; // sendet zum Server
- __declspec( dllexport ) bool getNachricht( char *nachricht, int len ) override; // empfängt Nachricht
- __declspec( dllexport ) bool sendeEncrypted( const char *nachricht, int len ) override; // sendet zum Server
- __declspec( dllexport ) bool getNachrichtEncrypted( char *nachricht, int len ) override; // 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 : public Verbindung
- {
- 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 ) override; // sendet zum Server
- __declspec( dllexport ) bool getNachricht( char *nachricht, int len ) override; // 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
|