GlobalObjects
Lade ...
Suche ...
Keine Treffer
tcp::TcpMain Klassenreferenzabstract

Oberklasse für Client sowie Server, welche ihr KnowHow in den abgeleiteten Klassen 'lernt'. Mehr ...

#include <TcpMain.h>

Klassendiagramm für tcp::TcpMain:

Öffentliche Methoden

 TcpMain (unsigned int uiPort, int iAdressFamily, int iSocketType, int iProtocol, int iSecTimeOut)
 
 TcpMain (unsigned int uiPort, int iAdressFamily, int iSocketType, int iProtocol, unsigned int uiDataSize, int iSecTimeOut)
 
virtual ~TcpMain ()
 
unsigned int getDataSize () const
 
SOCKET getMainSocket () const
 
unsigned int getPortNum () const
 
virtual int send (Message *pTcpMessage)=0
 
virtual void setDataSize (unsigned int uiDataSize)
 
void setTimeOutSec (int iSecTimeOut)
 
int TimeOutSec ()
 
- Öffentliche Methoden geerbt von eut::RepeatingThread
 RepeatingThread ()
 
virtual ~RepeatingThread ()
 
virtual void cancel ()
 
virtual void finishBreak ()
 
int getBreakCounter ()
 
bool isInExclusiveAccess () const
 
void setExclusiveAccess ()
 
void signalInput ()
 
virtual int start ()
 
RepeatingThread::STATUS status () const
 
virtual void takeABreak ()
 
bool testCancel ()
 
void unsetExclusiveAccess ()
 
void waitForInput ()
 

Geschützte Methoden

 TcpMain ()
 
void setWSACleanup () const
 
int startWinsock () const
 
- Geschützte Methoden geerbt von eut::RepeatingThread
ORDER getOrder ()
 
STATUS getStatus ()
 
void setStatus (STATUS eStatus)
 
void threadWork ()
 
void toOrder (ORDER eOrder)
 
virtual void work ()=0
 

Geschützte Attribute

int m_iAdressFamily
 
int m_iProtocol
 
int m_iSecTimeOut
 
int m_iSocketType
 
SOCKET m_MainSocket
 
unsigned int m_uiDataSize
 
unsigned int m_uiServerPort
 

Private Methoden

 TcpMain (const TcpMain &)
 
TcpMainoperator= (const TcpMain &)
 

Statische, private Attribute

static unsigned int m_uiTcpMainCounter
 

Weitere Geerbte Elemente

- Öffentliche Typen geerbt von eut::RepeatingThread
enum  EuTHREADERROR { EuTHREAD_ERR_NO_THREAD = -10301 , EuTHREAD_ERR_THREAD_ALREADY_WORKING = -10302 , EuTHREAD_ERR_THREAD_BREAK_COUNT_LESS_THAN_ZERO = -10303 , EuTHREAD_ERR_UNKNOWN = -10400 }
 Fehlerbereich = -10301 bis -10400 Mehr ...
 
enum  ORDER { eUNDEFINED , eDO_WORK , eEXIT }
 
enum  STATUS {
  eAT_THE_START , eWORKING , ePAUSING , eENDING ,
  eCOMPLETED
}
 
- Öffentliche Attribute geerbt von eut::RepeatingThread
std::string m_strDebugInfo
 

Ausführliche Beschreibung

Oberklasse für Client sowie Server, welche ihr KnowHow in den abgeleiteten Klassen 'lernt'.

Autor
Helmut Jakoby

Beschreibung der Konstruktoren und Destruktoren

◆ TcpMain() [1/4]

tcp::TcpMain::TcpMain ( )
protected

Dieser Konstruktor steht niccht zur Verfügung.

◆ TcpMain() [2/4]

tcp::TcpMain::TcpMain ( unsigned int uiPort,
int iAdressFamily,
int iSocketType,
int iProtocol,
int iSecTimeOut )

Konstruktor mit Parameterübergabe.

Parameter
[in]uiPortDer Port des Servers.
[in]iAdressFamilyDie Socket-AdressFamily um einen Socket zu instanziieren (i.d.R. AF_INET).
[in]iSocketTypeDer Socket-Typ (i.d.R. SOCK_STREAM).
[in]iProtocolDas Socket-Protokol (i.d.R. 0).
[in]iSecTimeOutDie Zeit bis ein Warten auf eine Verbindung bzw. warten auf Daten abgebrochen wird.

Es wird unter Windows WSA gestartet.

Ausnahmebehandlung
eut::ErrorNExceptionBei einem Fehler wird eine Exception geworfen.

◆ TcpMain() [3/4]

tcp::TcpMain::TcpMain ( unsigned int uiPort,
int iAdressFamily,
int iSocketType,
int iProtocol,
unsigned int uiDataSize,
int iSecTimeOut )

Konstruktor mit Parameterübergabe.

Parameter
[in]uiPortDer Port des Servers.
[in]iAdressFamilyDie Socket-AdressFamily um einen Socket zu instanziieren (i.d.R. AF_INET).
[in]iSocketTypeDer Socket-Typ (i.d.R. SOCK_STREAM).
[in]iProtocolDas Socket-Protokol (i.d.R. 0).
[in]uiDataSizeDie Paketgröße muss größer 0 sein.
[in]iSecTimeOutDie Zeit bis ein Warten auf eine Verbindung bzw. Daten abgebrochen wird.

Es wird unter Windows WSA gestartet.

Ausnahmebehandlung
eut::ErrorNExceptionBei einem Fehler wird eine Exception geworfen.

◆ ~TcpMain()

virtual tcp::TcpMain::~TcpMain ( )
virtual

Destruktor. Es wird unter Windows WSA beendet.

◆ TcpMain() [4/4]

tcp::TcpMain::TcpMain ( const TcpMain & )
private

Der Copy-Konstruktor steht nicht zur Verfügung.

Dokumentation der Elementfunktionen

◆ getDataSize()

unsigned int tcp::TcpMain::getDataSize ( ) const

Liefert die Paketgröße.

◆ getMainSocket()

SOCKET tcp::TcpMain::getMainSocket ( ) const

Liefert den Socket.

◆ getPortNum()

unsigned int tcp::TcpMain::getPortNum ( ) const

Liefert die Portnummer.

◆ operator=()

TcpMain & tcp::TcpMain::operator= ( const TcpMain & )
private

Der Zuweisungsoperator steht nicht zur Verfügung.

◆ send()

virtual int tcp::TcpMain::send ( Message * pTcpMessage)
pure virtual

Sendet übergebene Message an den Konterpart.

Wenn This ein Client ist, ist der Konterpart der Server. Wenn This ein Server, ist der Konterpart der Server. Es wird übergebene Nachricht an den dort referenzierten Konterpart-Socket gesendet.

Die Implementierung ist in den Unterklasse ausgeführt.

Parameter
[in]pTcpMessageDie zu versendende Nachricht.
Rückgabe
Eine Rückgabe < 0 zeigt einen Fehler an.

Implementiert in tcp::Client und tcp::Server.

◆ setDataSize()

virtual void tcp::TcpMain::setDataSize ( unsigned int uiDataSize)
virtual

Setzt die Paketgröße.

Parameter
[in]uiDataSizeDie Paketgröße muß gröser 0 sein.
Ausnahmebehandlung
eut::ErrorNExceptionBei einem Fehler wird eine Exception geworfen.

Erneute Implementation in tcp::Client.

◆ setTimeOutSec()

void tcp::TcpMain::setTimeOutSec ( int iSecTimeOut)

Setzt die Sekunden, die auf Antworten geartet wird.

Parameter
[in]iSecTimeOutDie maximale Wartezeit.

◆ setWSACleanup()

void tcp::TcpMain::setWSACleanup ( ) const
protected

Es wird m_uiTcpMainCounter dekrementiert und unter Windows wenn 0, WSACleanup() aufgerufen (schließt ALLE Verbindungen).

◆ startWinsock()

int tcp::TcpMain::startWinsock ( ) const
protected

Es wird unter Windows WSA mittels WSAStartup() gestartet.

Rückgabe
Eine Rückgabe < 0 zeigt einen Fehler an.

◆ TimeOutSec()

int tcp::TcpMain::TimeOutSec ( )

Liefert die Sekunden, wie lange auf Antworten gewartet wird.

Rückgabe
Die maximale Wartezeit.

Dokumentation der Datenelemente

◆ m_iAdressFamily

int tcp::TcpMain::m_iAdressFamily
protected

Die Socket-AdressFamily (i.d.R. AF_INET) um einen Socket zu instanziieren.

◆ m_iProtocol

int tcp::TcpMain::m_iProtocol
protected

Das Socket-Protokol (i.d.R. 0) um einen Socket zu instanziieren.

◆ m_iSecTimeOut

int tcp::TcpMain::m_iSecTimeOut
protected

Wartezeit für Verbindungsantworten. wenn nicht gesetzt, wird ggf. ewig gewartet!

◆ m_iSocketType

int tcp::TcpMain::m_iSocketType
protected

Der Socket-Typ (i.d.R. SOCK_STREAM) um einen Socket zu instanziieren.

◆ m_MainSocket

SOCKET tcp::TcpMain::m_MainSocket
protected

Der/die/das ? Socket.

◆ m_uiDataSize

unsigned int tcp::TcpMain::m_uiDataSize
protected

Es werden aus dem Datenstrom Packete gemacht; hier die Paketgröße (default ist DEFAULT_DATASIZE).

◆ m_uiServerPort

unsigned int tcp::TcpMain::m_uiServerPort
protected

Der Port des Sockets.
Weitere Infos unter de.wikipedia.org/wiki/Liste_der_standardisierten_Ports

◆ m_uiTcpMainCounter

unsigned int tcp::TcpMain::m_uiTcpMainCounter
staticprivate

Bei jeder Instanziierung eines Objektes dieser Klasse bzw. Unterklasse wird dieser Zähler inkrementiert . Bei jedem Aufruf von setWSACleanup() wiederum dekrementieret.

Siehe auch
setWSACleanup()

Die Dokumentation für diese Klasse wurde erzeugt aufgrund der Datei: