1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283 |
- #ifndef Server_H
- #define Server_H
- #include "Network.h"
- namespace Framework
- {
- namespace Encryption
- {
- class Key;
- }
- }
- using namespace Framework;
- namespace Network
- {
- class Server; // aus dieser Datei
- class SKlient; // aus dieser Datei
- class Server
- {
- private:
- SOCKET sock;
- SOCKADDR_IN addresse;
- int klients;
- int ref;
- public:
- // Konstruktor
- __declspec( dllexport ) Server();
- // Destruktor
- __declspec( dllexport ) ~Server();
- // nicht constant
- __declspec( dllexport ) bool verbinde( unsigned short port, int warteschlangenLen ); // Öffnet das Socket
- __declspec( dllexport ) SKlient *getKlient(); // nimmt Klient an
- __declspec( dllexport ) int getKlients( bool reset ); // gibt die Anzahl der Klients zurück
- __declspec( dllexport ) bool trenne(); // beendet den Server
- // constant
- __declspec( dllexport ) unsigned short getPort() const; // gibt den Port zurück
- // Reference Counting
- __declspec( dllexport ) Server *getThis();
- __declspec( dllexport ) Server *release();
- };
- class SKlient
- {
- private:
- SOCKET sock;
- sockaddr_in clientAddr;
- Encryption::Key *sendeKey;
- Encryption::Key *empfangKey;
- int downStreamBytes;
- int upStreamBytes;
- int ref;
- public:
- // Konstruktor
- __declspec( dllexport ) SKlient( sockaddr_in client, SOCKET sock );
- // Destruktor
- __declspec( dllexport ) ~SKlient();
- // 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 sende( const char *nachricht, int len ); // sendet zum Klient
- __declspec( dllexport ) bool getNachricht( char *nachricht, int len ); // empfängt Nachricht von Klient
- __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 Klient
- // constant
- __declspec( dllexport ) unsigned short getPort() const; // gibt den Port zurück
- __declspec( dllexport ) const char *getIp() const; // gibt die Ip des Klients zurück
- // Reference Counting
- __declspec( dllexport ) SKlient *getThis();
- __declspec( dllexport ) SKlient *release();
- };
- }
- #endif
|