module_net_tcp Klassenreferenz

Implementierung der Klasse module_net zur Verwendung mit TCP/IP. Mehr ...

#include <module_net_tcp.h>

Klassendiagramm für module_net_tcp:

module_net module Aufstellung aller Elemente

Öffentliche Methoden

 module_net_tcp (void)
 Der Konstruktor sorgt nur für gültige Anfangswerte.
virtual int connect (unsigned int port)
virtual int connect (const char *server, unsigned int port)
virtual int disconnect (void)
virtual int send_msg (const char *msg, unsigned int size, int flags=0)
virtual int recv_msg (char *buffer, unsigned int size, int flags=0)
virtual int has_msg (void)
virtual int get_status (void)
virtual bool has_connection (void)
virtual int mod_load (void)
virtual int mod_unload (void)
virtual int handle_msg (const char *)
virtual char * get_name (void)

Private Attribute

int s
 Socket für den Server.
int c
 Socket für den Client.
sockaddr_in sock_addr
sockaddr_in client_addr

Statische private Attribute

static unsigned int num_instances = 0

Ausführliche Beschreibung

Implementierung der Klasse module_net zur Verwendung mit TCP/IP.


Beschreibung der Konstruktoren und Destruktoren

module_net_tcp::module_net_tcp ( void   ) 

Der Konstruktor sorgt nur für gültige Anfangswerte.


Dokumentation der Elementfunktionen

int module_net_tcp::connect ( const char *  server,
unsigned int  port 
) [virtual]

Stellt eine Verbindung zu einem Server her, der auf dem angegebenen Port lauscht. Für den praktischen Einsatz empfiehlt sich die Verwendung eines hohen Ports, da die Ports von 1 - 1024 oftmals nur für root verwendbar sind.

Parameter:
server Die Adresse des Servers. Kann eine IP-Adresse oder ein Hostname sein.
port Der Port, an dem der Server eingehende Verbindungen entgegennimmt.
Rückgabe:
0, wenn die Verbindung hergestellt werden konnte. -1 sonst.

Implementiert module_net.

int module_net_tcp::connect ( unsigned int  port  )  [virtual]

Erstellt einen Server, der Verbindungen entgegennimmt auf einem bestimmten Port entgegennimmt. Eventuell müssen für niedrige Ports (< 1024) root-Rechte vorhanden sein.

Parameter:
port Der Port, an den Verbindungen gerichtet werden.
Rückgabe:
0, wenn der Server erstellt werden konnte. -1 sonst.

Momentan werden Verbindungen von jeder Adresse erlaubt. Dies könnte man auch ändern, z.B. auf ein Subnetz.

Implementiert module_net.

int module_net_tcp::disconnect ( void   )  [virtual]

Schließt die Verbindung oder beendet den Server, je nachdem, welcher Modus gerade aktiv ist.

Rückgabe:
0.

Implementiert module_net.

virtual char* module_net_tcp::get_name ( void   )  [inline, virtual]

Gibt den Namen des Moduls zurück.

Rückgabe:
"module_net_tcp"

Erneute Implementation von module_net.

int module_net_tcp::get_status ( void   )  [virtual]

Gibt den aktuellen Status des Moduls zurück. Momentan nicht verwendet.

Rückgabe:
0.

Implementiert module_net.

int module_net_tcp::handle_msg ( const char *  msg  )  [virtual]

Behandelt Nachrichten. Wenn das Modul ein Server ist und gerade eine Clientverbindung vorliegt, wird eine Netzwerknachricht vom Typ MSG_LOG erstellt, die die empfangene Modulnachricht enthält und an den Client weiterleitet. Dieser kann sie dann anzeigen.

Parameter:
msg Die empfangene Nachricht
Rückgabe:
Immer 0.

Implementiert module.

bool module_net_tcp::has_connection ( void   )  [virtual]

Gibt den Status der Verbindung zurück.

Rückgabe:
true, wenn eine Verbindung vorliegt. false, wenn dem nicht so ist. Dabei werden auch aktive Clientverbindungen mit einbezogen.

Implementiert module_net.

int module_net_tcp::has_msg ( void   )  [virtual]

Überprüft, wie viele Bytes auf die Abholung am Socket warten.

Rückgabe:
Anzahl der Bytes, die auf Abholung warten oder -1, wenn ein Fehler aufgetreten ist.

Implementiert module_net.

int module_net_tcp::mod_load ( void   )  [virtual]

Initialiserung des Moduls. Momentan nicht nötig.

Rückgabe:
Immer 0.

Implementiert module_net.

int module_net_tcp::mod_unload ( void   )  [virtual]

Beenden des Moduls. Schließt u.A. offene Sockets und die setzt die Verbindung zurück.

Rückgabe:
Immer 0.

Implementiert module_net.

int module_net_tcp::recv_msg ( char *  buffer,
unsigned int  size,
int  flags = 0 
) [virtual]

Empfängt Nachrichten, die auf den Server oder den Client warten.

Parameter:
buffer Der Puffer, in den die Daten geschrieben werden sollen.
size Die Größe des Puffers in Bytes.
flags Optionale flags. Unter recv(2) gibt es mehr Informationen.
Rückgabe:
Anzahl der empfangenen Bytes (>= 0) oder -1 im Fehlerfall.

Implementiert module_net.

int module_net_tcp::send_msg ( const char *  msg,
unsigned int  size,
int  flags = 0 
) [virtual]

Sendet Nachrichten an den Server oder die Clients. Standardmäßig werden dabei keine send flags gesetzt. In bestimmten Fällen mag dies aber von Vorteil sein.

Parameter:
msg Die zu sendende Nachricht.
size Die Größe der Nachricht in Bytes.
flags Optionale Parameter. Unter send(2) finden sich mehr Informationen.
Rückgabe:
Anzahl der gesendeten Bytes (>= 0) oder -1, wenn ein Fehler aufgetreten ist.

Implementiert module_net.


Dokumentation der Datenelemente

int module_net_tcp::c [private]

Socket für den Client.

sockaddr_in module_net_tcp::client_addr [private]

unsigned int module_net_tcp::num_instances = 0 [static, private]

Zählt alle Instanzen des Moduls. Somit ist die Zuweisung einer eindeutigen ID möglich. Momentan nicht verwendet.

int module_net_tcp::s [private]

Socket für den Server.

sockaddr_in module_net_tcp::sock_addr [private]


Die Dokumentation für diese Klasse wurde erzeugt aufgrund der Dateien:
Erzeugt am Sun Sep 3 23:58:31 2006 für Eukalyptos von  doxygen 1.4.7