GlobalObjects
Lade ...
Suche ...
Keine Treffer
TcpServer.h
gehe zur Dokumentation dieser Datei
1#ifndef INC_TCPSERVER_H
2#define INC_TCPSERVER_H
3//-----------------------------------------------------------------------------
36//-----------------------------------------------------------------------------
37#include "TcpTypes.h"
38#include "TcpMain.h"
39#include "TcpMessage.h"
40#include <queue>
41#include <map>
42//-----------------------------------------------------------------------------
43namespace tcp
44{
45 //---------------------------------------------------------------------------
46 #ifdef _MSC_VER
47 /* 'Bezeichner': Klasse 'Typ' benötigt eine DLL-Schnittstelle, die von... */
48 #pragma warning( disable : 4251 )
49 /* class 'TYP' ist keine DLL-Schnittstelle und wurde als Basisklasse... */
50 #pragma warning( disable : 4275 )
51 #endif
52 //---------------------------------------------------------------------------
53 //Forwards
54 class Transmitter;
55 class ServerReceiver;
56 class ServerAcceptReceiver;
57 //---------------------------------------------------------------------------
261 {
262 public:
263 //-----------------------------------------------------------------------
264 // >>>>>>>>>>>>>>>>>> ServerReceiverTransmitter >>>>>>>>>>>>>>>>>>>>>>>>>
265 //-----------------------------------------------------------------------
279 {
280 private:
281 //============== Attribute
282 //---------------------------------------------------------------------
293 //---------------------------------------------------------------------
304 //---------------------------------------------------------------------
305
306 protected:
307 //============== Konstruktoren
308 //---------------------------------------------------------------------
319 //---------------------------------------------------------------------
320
321 public:
322 //============== Konstruktoren
323 //---------------------------------------------------------------------
347 //---------------------------------------------------------------------
360 //---------------------------------------------------------------------
361
362 private:
363 //============== Copy-Konstruktor
364 //---------------------------------------------------------------------
375 //---------------------------------------------------------------------
376
377 public:
378 //============== Methoden
379 //---------------------------------------------------------------------
407 int send( char * pszRawMsg,
408 unsigned int uiRawMsgSize,
409 unsigned int uiMessageID = 0,
410 int iActionCode = 0,
411 const std::string & rstrInfo = "" );
412 //---------------------------------------------------------------------
434 int send( Message * pTcpMessage );
435 //---------------------------------------------------------------------
445 void setValid( bool bValid );
446 //---------------------------------------------------------------------
462 int getPeerName( std::string & rstrIPAdress, unsigned int & ruiPort ) const;
463 //---------------------------------------------------------------------
475 SOCKET Socket() const;
476 //---------------------------------------------------------------------
477 private:
478 //============== Operatoren
479 //---------------------------------------------------------------------
490 //---------------------------------------------------------------------
491 };
492 //-----------------------------------------------------------------------
493 // <<<<<<<<<<<<<<<<< ServerReceiverTransmitter <<<<<<<<<<<<<<<<<<<<<<<<<<
494 //-----------------------------------------------------------------------
495
496 private:
497 //============== Attribute
498 //-----------------------------------------------------------------------
510 unsigned long m_ulMaxClients;
511 //-----------------------------------------------------------------------
521 std::queue<AbstractMessage *> m_MsgQueue;
522 //-----------------------------------------------------------------------
523
524 protected:
525 //-----------------------------------------------------------------------
536 //-----------------------------------------------------------------------
546 std::map< SOCKET, ServerReceiverTransmitter *, std::less< SOCKET > > m_ClientMap;
547 //-----------------------------------------------------------------------
548
549 //============== Konstruktor
550 //-----------------------------------------------------------------------
561 //-----------------------------------------------------------------------
571 Server( unsigned int, int, int, int, int );
572 //-----------------------------------------------------------------------
582 Server( unsigned int, int, int, int, unsigned int, int );
583 //-----------------------------------------------------------------------
584
585 public:
586 //============== Konstruktoren
587 //-----------------------------------------------------------------------
618 Server( unsigned int uiPort,
619 int iAdressFamily,
620 int iSocketType,
621 int iProtocol,
622 unsigned int uiDataSize,
623 unsigned long ulMaxClients,
624 int iSecTimeOut );
625 //-----------------------------------------------------------------------
635 virtual ~Server();
636 //-----------------------------------------------------------------------
637
638 private:
639 //============== Copy-Konstruktor
640 //-----------------------------------------------------------------------
650 Server( const Server & rT );
651 //-----------------------------------------------------------------------
652
653 //============== Methoden
654 //-----------------------------------------------------------------------
668 void init();
669 //-----------------------------------------------------------------------
670
671 protected:
672 //============== Methoden
673 //-----------------------------------------------------------------------
685 virtual void work() override;
686 //-----------------------------------------------------------------------
687 #if defined (__PTHREADS)
703 virtual void cleanUp();
704 //-----------------------------------------------------------------------
705 #else
706
707 public:
708 //============== Methoden
709 //-------------------------------------------------------------------------
725 virtual void cancel() override;
726 //-----------------------------------------------------------------------
727 #endif
728
729 protected:
730 //============== Methoden
731 //-----------------------------------------------------------------------
747 virtual void insertNewClient( Server::ServerReceiverTransmitter * pNewServerReceiverTransmitter );
748 //-----------------------------------------------------------------------
770 //-----------------------------------------------------------------------
786 int virtual removeClient( SOCKET Socket );
787 //-----------------------------------------------------------------------
810 SOCKET Socket,
811 unsigned int iDataSize ) const;
812 //-----------------------------------------------------------------------
825 void setClientMapReceiverValid( bool bValid );
826 //-----------------------------------------------------------------------
838 //-----------------------------------------------------------------------
850 unsigned long getMaxClients() const;
851 //-----------------------------------------------------------------------
867 virtual void processClientMessage (AbstractMessage * pTcpMessage);
868 //-----------------------------------------------------------------------
900 virtual int send( SOCKET ClientSocket,
901 char * pszRawMsg,
902 unsigned int uiRawMsgSize,
903 unsigned int uiMessageID = 0,
904 int iActionCode = 0,
905 const std::string & rstrInfo = "" );
906 //-----------------------------------------------------------------------
931 virtual int send( Message * pTcpMessage ) override;
932 //-----------------------------------------------------------------------
933
934 public:
935 //============== Methoden
936 //-----------------------------------------------------------------------
953 //-----------------------------------------------------------------------
954
955 private:
956 //============== Operatoren
957 //-----------------------------------------------------------------------
967 Server & operator= ( const Server & );
968 //-----------------------------------------------------------------------
969 };
970 //---------------------------------------------------------------------------
971 #ifdef _MSC_VER
972 /* 'Bezeichner': Klasse 'Typ' benötigt eine DLL-Schnittstelle, die von... */
973 #pragma warning( default : 4251 )
974 /* class 'TYP' ist keine DLL-Schnittstelle und wurde als Basisklasse... */
975 #pragma warning( default : 4275 )
976 #endif
977 //---------------------------------------------------------------------------
978} // namespace tcp
979//-----------------------------------------------------------------------------
980#endif
Header für TcpMain
Header für AbstractMessage, Message, ServerAcceptMessage und ServerMessage.
Für jede Bibliothek, hier 'TcpLib' gibt es eine Typen-Datei.
#define __tcp_export_dll
Definition TcpTypes.h:53
Basisklasse für Nachrichten, welche von den Tcp-Klassen verschickt, empfangen und bearbeitet werden k...
Definition TcpMessage.h:90
Beinhaltet einen Datenstrom, welcher von den Tcp-Klassen versendet und empfangen werden kann.
Definition TcpMessage.h:161
Tuple von Socket-Receiver und -Transmitter für den Server.
Definition TcpServer.h:279
int send(Message *pTcpMessage)
Transmitter * m_pTransmitter
Definition TcpServer.h:303
ServerReceiverTransmitter(const ServerReceiverTransmitter &rT)
int send(char *pszRawMsg, unsigned int uiRawMsgSize, unsigned int uiMessageID=0, int iActionCode=0, const std::string &rstrInfo="")
int getPeerName(std::string &rstrIPAdress, unsigned int &ruiPort) const
ServerReceiverTransmitter(Transmitter *pTransmitter, ServerReceiver *pReceiver)
ServerReceiver * m_pReceiver
Definition TcpServer.h:292
Accept-Receiver nimmt neue Clients an und meldet diese bei seinem Eltern-Objekt an (i....
Definition TcpServerAcceptReceiver.h:76
Eine einfache TCP-Serverklasse, welche ihr KnowHow in den abgeleiteten Klassen lernen soll.
Definition TcpServer.h:261
virtual void insertNewClient(Server::ServerReceiverTransmitter *pNewServerReceiverTransmitter)
virtual int send(SOCKET ClientSocket, char *pszRawMsg, unsigned int uiRawMsgSize, unsigned int uiMessageID=0, int iActionCode=0, const std::string &rstrInfo="")
Server(unsigned int, int, int, int, unsigned int, int)
virtual Server::ServerReceiverTransmitter * generateNewServerReceiverTransmitter(Server *pParent, SOCKET Socket, unsigned int iDataSize) const
Server(const Server &rT)
void clearClientMap()
virtual int removeClient(SOCKET Socket)
std::queue< AbstractMessage * > m_MsgQueue
Definition TcpServer.h:521
virtual ~Server()
virtual void cancel() override
unsigned long m_ulMaxClients
Definition TcpServer.h:510
void setClientMapReceiverValid(bool bValid)
int acceptClientMessage(AbstractMessage *pTcpMessage)
virtual int send(Message *pTcpMessage) override
Server(unsigned int uiPort, int iAdressFamily, int iSocketType, int iProtocol, unsigned int uiDataSize, unsigned long ulMaxClients, int iSecTimeOut)
std::map< SOCKET, ServerReceiverTransmitter *, std::less< SOCKET > > m_ClientMap
Definition TcpServer.h:546
Server(unsigned int, int, int, int, int)
Server::ServerReceiverTransmitter * getClient(SOCKET Socket)
virtual void work() override
ServerAcceptReceiver * m_pAcceptReceiver
Definition TcpServer.h:535
unsigned long getMaxClients() const
virtual void processClientMessage(AbstractMessage *pTcpMessage)
Klasse, welche über ein SOCKET mit einem Client kommunizieret und ihr Empfangsergebnis vom Typ Server...
Definition TcpServerReceiver.h:74
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