Klient.h 3.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  1. #ifndef Klient_H
  2. #define Klient_H
  3. #include "Network.h"
  4. #include <openssl/bio.h>
  5. #include <openssl/ssl.h>
  6. namespace Framework
  7. {
  8. namespace Encryption
  9. {
  10. class Key;
  11. }
  12. class Text;
  13. }
  14. using namespace Framework;
  15. namespace Network
  16. {
  17. class Klient; // aus dieser Datei
  18. class Klient
  19. {
  20. private:
  21. SOCKET sock;
  22. sockaddr_in server;
  23. Encryption::Key *sendeKey;
  24. Encryption::Key *empfangKey;
  25. int downStreamBytes;
  26. int upStreamBytes;
  27. int ref;
  28. public:
  29. // Konstruktor
  30. __declspec( dllexport ) Klient();
  31. // Destruktor
  32. __declspec( dllexport ) ~Klient();
  33. // nicht constant
  34. __declspec( dllexport ) void setSendeKeyZ( Encryption::Key *key ); // Setzt den Schlüssel fürs Senden
  35. __declspec( dllexport ) void setEmpfangKeyZ( Encryption::Key *key ); // Setzt den Schlüssel fürs Empfangen
  36. __declspec( dllexport ) void setSendeKey( char *key, int len ); // Setzt den Schlüssel fürs Senden
  37. __declspec( dllexport ) void setEmpfangKey( char *key, int len ); // Setzt den Schlüssel fürs Empfangen
  38. __declspec( dllexport ) bool verbinde( unsigned short port, const char *ip ); // verbindet mit Server
  39. __declspec( dllexport ) bool sende( const char *nachricht, int len ); // sendet zum Server
  40. __declspec( dllexport ) bool getNachricht( char *nachricht, int len ); // empfängt Nachricht
  41. __declspec( dllexport ) bool sendeEncrypted( const char *nachricht, int len ); // sendet zum Server
  42. __declspec( dllexport ) bool getNachrichtEncrypted( char *nachricht, int len ); // empfängt Nachricht
  43. __declspec( dllexport ) int getDownloadBytes( bool reset ); // gibt die anzahl von empfangen bytes zurück
  44. __declspec( dllexport ) int getUploadBytes( bool reset ); // gibt die anzahl von versendeter bytes zurück
  45. __declspec( dllexport ) bool trenne(); // Trennt die Verbindung zum Server
  46. // constant
  47. __declspec( dllexport ) bool hatNachricht( int zeit ); // Wartet eine Zeit Lang auf eine Nachricht
  48. __declspec( dllexport ) unsigned short getServerPort() const; // gibt den Port des Servers zurück
  49. __declspec( dllexport ) const char *getServerIp() const; // gibt die Ip des Servers zurück
  50. // Reference Counting
  51. __declspec( dllexport ) Klient *getThis();
  52. __declspec( dllexport ) Klient *release();
  53. };
  54. class SSLKlient
  55. {
  56. private:
  57. unsigned short port;
  58. Text* ip;
  59. SSL_CTX* ctx;
  60. SSL* ssl;
  61. BIO* bio;
  62. int downStreamBytes;
  63. int upStreamBytes;
  64. bool connected;
  65. int ref;
  66. public:
  67. // Konstruktor
  68. __declspec( dllexport ) SSLKlient();
  69. // Destruktor
  70. __declspec( dllexport ) ~SSLKlient();
  71. __declspec( dllexport ) bool verbinde( unsigned short port, const char *ip ); // verbindet mit Server
  72. __declspec( dllexport ) bool sende( const char *nachricht, int len ); // sendet zum Server
  73. __declspec( dllexport ) bool getNachricht( char *nachricht, int len ); // empfängt Nachricht
  74. __declspec( dllexport ) int getDownloadBytes( bool reset ); // gibt die anzahl von empfangen bytes zurück
  75. __declspec( dllexport ) int getUploadBytes( bool reset ); // gibt die anzahl von versendeter bytes zurück
  76. __declspec( dllexport ) bool trenne(); // Trennt die Verbindung zum Server
  77. // constant
  78. __declspec( dllexport ) unsigned short getServerPort() const; // gibt den Port des Servers zurück
  79. __declspec( dllexport ) const char *getServerIp() const; // gibt die Ip des Servers zurück
  80. // Reference Counting
  81. __declspec( dllexport ) SSLKlient *getThis();
  82. __declspec( dllexport ) SSLKlient *release();
  83. };
  84. }
  85. #endif