GlobalObjects
Lade ...
Suche ...
Keine Treffer
TcpClient.h
gehe zur Dokumentation dieser Datei
1#ifndef INC_TCPCLIENT_H
2#define INC_TCPCLIENT_H
3//-----------------------------------------------------------------------------
36//-----------------------------------------------------------------------------
37#include "TcpTypes.h"
38#include "TcpMain.h"
40#include <string>
41#include <queue>
42#include "TcpMessage.h"
43#if defined(_MSC_VER) || defined(__MINGW32__) || defined(__MINGW64__)
44 #include <winsock.h>
45#endif
46//-----------------------------------------------------------------------------
47namespace tcp
48{
49 //---------------------------------------------------------------------------
50 #ifdef _MSC_VER
51 /* 'Bezeichner': Klasse 'Typ' benötigt eine DLL-Schnittstelle, die von... */
52 #pragma warning( disable : 4251 )
53 /* class 'TYP' ist keine DLL-Schnittstelle und wurde als Basisklasse... */
54 #pragma warning( disable : 4275 )
55 #endif
56 //---------------------------------------------------------------------------
57 //Forwards
58 class ClientReceiver;
59 class Transmitter;
60 //---------------------------------------------------------------------------
192 {
193 protected:
194 //============== Attribute
195 //-----------------------------------------------------------------------
207 //-----------------------------------------------------------------------
219 //-----------------------------------------------------------------------
220
221 private:
222 //============== Attribute
223 //-----------------------------------------------------------------------
233 SOCKADDR_IN m_Socketadress;
234 //-----------------------------------------------------------------------
244 std::string m_sHostname;
245 //-----------------------------------------------------------------------
255 std::queue<Message *> m_MsgQueue;
256 //-----------------------------------------------------------------------
282 //-----------------------------------------------------------------------
283
284 protected:
285 //============== Konstruktor
286 //-----------------------------------------------------------------------
297 //-----------------------------------------------------------------------
307 Client( unsigned int,
308 int,
309 int,
310 int,
311 int );
312 //-----------------------------------------------------------------------
313
314 public:
315 //============== Konstruktoren
316 //-----------------------------------------------------------------------
348 Client( const std::string & rsHostname,
349 unsigned int uiPort,
350 int iAdressFamily,
351 int iSocketType,
352 int iProtocol,
353 int iSecTimeOut );
354 //-----------------------------------------------------------------------
388 Client( const std::string & rsHostname,
389 unsigned int uiPort,
390 int iAdressFamily,
391 int iSocketType,
392 int iProtocol,
393 unsigned int uiDataSize,
394 int iSecTimeOut );
395 //-----------------------------------------------------------------------
396
397 //============== Destruktore
398 //-----------------------------------------------------------------------
410 virtual ~Client();
411 //-----------------------------------------------------------------------
412
413 private:
414 //============== Copy-Konstruktor
415 //-----------------------------------------------------------------------
425 Client( const Client & );
426 //-----------------------------------------------------------------------
427
428 protected:
429 //============== Methoden
430 //-----------------------------------------------------------------------
442 virtual void work() override;
443 //-----------------------------------------------------------------------
444 #if defined (__PTHREADS)
460 virtual void cleanUp();
461 //-----------------------------------------------------------------------
462 #else
463 //-----------------------------------------------------------------------
464
465 public:
466 //============== Methoden
478 virtual void cancel() override;
479 #endif
480 //-----------------------------------------------------------------------
481
482 protected:
483 //============== Methoden
484 //-----------------------------------------------------------------------
505 //-----------------------------------------------------------------------
526 //-----------------------------------------------------------------------
527
528 public:
529 //============== Methoden
530 //-----------------------------------------------------------------------
542 virtual void setDataSize( unsigned int uiDataSize ) override;
543 //-----------------------------------------------------------------------
556 //-----------------------------------------------------------------------
568 virtual int disconnectServer();
569 //-----------------------------------------------------------------------
581 bool isServerConnected() const;
582 //-----------------------------------------------------------------------
611 virtual int send( char * pszRawMsg,
612 unsigned int uiRawMsgSize,
613 unsigned int uiMessageID = 0,
614 int iActionCode = 0,
615 const std::string & rsInfo = "" );
616 //-----------------------------------------------------------------------
638 virtual int send( Message * pTcpMessage ) override;
639 //-----------------------------------------------------------------------
655 int acceptServerMessage( Message * pTcpServerMessage );
656 //-----------------------------------------------------------------------
672 int getSocketAdrFromString( SOCKADDR_IN * Socketadress,
673 const std::string & rsHostnameOrIp ) const;
674 //-----------------------------------------------------------------------
688 std::string getHostName() const;
689 //-----------------------------------------------------------------------
705 int getPeerName( std::string& rsIPAdress, unsigned int& ruiPort ) const;
706 //-----------------------------------------------------------------------
719 //-----------------------------------------------------------------------
720
721
722 protected:
723 //============== Methoden
724 //-----------------------------------------------------------------------
740 virtual void processServerMessage( Message * pTcpMessage );
741 //-----------------------------------------------------------------------
753 virtual int syncDataSize();
754 //-----------------------------------------------------------------------
755
756 private:
757 //============== Operatoren
758 //-----------------------------------------------------------------------
768 Client & operator= ( const Client & );
769 //-----------------------------------------------------------------------
770 };
771 //---------------------------------------------------------------------------
772 #ifdef _MSC_VER
773 /* 'Bezeichner': Klasse 'Typ' benötigt eine DLL-Schnittstelle, die von... */
774 #pragma warning( default : 4251 )
775 /* class 'TYP' ist keine DLL-Schnittstelle und wurde als Basisklasse... */
776 #pragma warning( default : 4275 )
777 #endif
778 //---------------------------------------------------------------------------
779} // namespace tcp
780//-----------------------------------------------------------------------------
781#endif
Header für TcpMain
Header für AbstractMessage, Message, ServerAcceptMessage und ServerMessage.
Header für ReceiverTransmitter.
Für jede Bibliothek, hier 'TcpLib' gibt es eine Typen-Datei.
#define __tcp_export_dll
Definition TcpTypes.h:53
Eine einfache TCP-Clientklasse, welche ihr KnowHow in den abgeleiteten Klassen lernen soll.
Definition TcpClient.h:192
Client(unsigned int, int, int, int, int)
bool isServerConnected() const
ClientReceiver * m_pReceiver
Definition TcpClient.h:206
ActionCode m_eToWaitingForServer
Definition TcpClient.h:281
std::queue< Message * > m_MsgQueue
Definition TcpClient.h:255
virtual void cancel() override
virtual int syncDataSize()
virtual int disconnectServer()
int acceptServerMessage(Message *pTcpServerMessage)
std::string m_sHostname
Definition TcpClient.h:244
int connectServer()
Client(const std::string &rsHostname, unsigned int uiPort, int iAdressFamily, int iSocketType, int iProtocol, int iSecTimeOut)
virtual int send(char *pszRawMsg, unsigned int uiRawMsgSize, unsigned int uiMessageID=0, int iActionCode=0, const std::string &rsInfo="")
virtual void processServerMessage(Message *pTcpMessage)
virtual ClientReceiver * generateNewReceiver()
int getPeerName(std::string &rsIPAdress, unsigned int &ruiPort) const
Transmitter * m_pTransmitter
Definition TcpClient.h:218
Client(const Client &)
virtual int send(Message *pTcpMessage) override
virtual ~Client()
SOCKADDR_IN m_Socketadress
Definition TcpClient.h:233
virtual void work() override
Client(const std::string &rsHostname, unsigned int uiPort, int iAdressFamily, int iSocketType, int iProtocol, unsigned int uiDataSize, int iSecTimeOut)
ActionCode getWaitingServerMsgActionCode() const
virtual void setDataSize(unsigned int uiDataSize) override
std::string getHostName() const
virtual Transmitter * generateNewTransmitter()
int getSocketAdrFromString(SOCKADDR_IN *Socketadress, const std::string &rsHostnameOrIp) const
Klasse, welche über ein SOCKET mit einem Server kommunizieret und ihr Empfangsergebnis vom Typ Messag...
Definition TcpClientReceiver.h:74
Beinhaltet einen Datenstrom, welcher von den Tcp-Klassen versendet und empfangen werden kann.
Definition TcpMessage.h:161
Oberklasse für Client sowie Server, welche ihr KnowHow in den abgeleiteten Klassen 'lernt'.
Definition TcpMain.h:103
Eine Klasse, welche über ein SOCKET mit einem Client oder Server kommunizieret und Senddaten vom Typ ...
Definition TcpTransmitter.h:68
Definition TcpClient.h:48
ActionCode
Definition TcpTypes.h:118