GlobalObjects
Lade ...
Suche ...
Keine Treffer
TcpReceiverTransmitter.h
gehe zur Dokumentation dieser Datei
1#ifndef INC_TCPRECEIVERTRANSMITTER_H
2#define INC_TCPRECEIVERTRANSMITTER_H
3//-----------------------------------------------------------------------------
36//-----------------------------------------------------------------------------
37#include "TcpTypes.h"
38
39#if defined (__PTHREADS)
40 #include "EuEndlessPThread.h"
41#else
42 #include "EuRepeatingThread.h"
43#endif
44
45#if defined(_MSC_VER) || defined(__MINGW32__) || defined(__MINGW64__)
46 #include <winsock.h>
47#elif defined(__GNUC__)
48 /*
49 #include <stdio.h>
50 #include <stdlib.h>
51 #include <unistd.h>
52 */
53 #include <string.h>
54
55 #include <errno.h>
56 #include <sys/types.h>
57 #include <sys/socket.h>
58 #include <netinet/in.h>
59 #include <netdb.h>
60 #include <arpa/inet.h>
61 #define SOCKET uintptr_t
62 #define SOCKADDR_IN sockaddr_in
63 #define SOCKADDR sockaddr
64 #define HOSTENT hostent
65 #define INVALID_SOCKET (SOCKET)(~0)
66 #define SOCKET_ERROR (-1)
67#endif
68//-----------------------------------------------------------------------------
69#ifdef _MSC_VER
70 /* 'Bezeichner': Klasse 'Typ' benötigt eine DLL-Schnittstelle, die von... */
71 #pragma warning( disable : 4251 )
72 /* class 'TYP' ist keine DLL-Schnittstelle und wurde als Basisklasse... */
73 #pragma warning( disable : 4275 )
74#endif
75//-----------------------------------------------------------------------------
76namespace tcp
77{
78 //---------------------------------------------------------------------------
92 #if defined (__PTHREADS)
93 class __tcp_export_dll ReceiverTransmitter : public EuEndlessPThread
94 #else
96 #endif
97 {
98 protected:
99 //============== Attribute
100 //-----------------------------------------------------------------------
110 SOCKET m_Socket;
111 //-----------------------------------------------------------------------
112
113 //============== Konstruktor
114 //-----------------------------------------------------------------------
125 //-----------------------------------------------------------------------
126
127 public:
128 //============== Konstruktoren
129 //-----------------------------------------------------------------------
143 ReceiverTransmitter( SOCKET Socket );
144 //-----------------------------------------------------------------------
155 //-----------------------------------------------------------------------
156
157 private:
158 //============== Copy-Konstruktor
159 //-----------------------------------------------------------------------
170 //-----------------------------------------------------------------------
171
172 public:
173 //========== Methoden ========
174 //-----------------------------------------------------------------------
186 #if defined (__PTHREADS)
187 virtual int takeABreak();
188 #else
189 virtual void takeABreak() override;
190 #endif
191 //-----------------------------------------------------------------------
203 #if defined (__PTHREADS)
204 virtual int finishBreak();
205 #else
206 virtual void finishBreak() override;
207 #endif
208 //-----------------------------------------------------------------------
224 int getPeerName( std::string & rstrIPAdress, unsigned int & ruiPort ) const;
225 //-----------------------------------------------------------------------
235 SOCKET Socket() const;
236 //-----------------------------------------------------------------------
237
238 private:
239 //============== Operatoren
240 //-----------------------------------------------------------------------
251 //-----------------------------------------------------------------------
252 };
253 //---------------------------------------------------------------------------
254 #ifdef _MSC_VER
255 /* 'Bezeichner': Klasse 'Typ' benötigt eine DLL-Schnittstelle, die von... */
256 #pragma warning( default : 4251 )
257 /* class 'TYP' ist keine DLL-Schnittstelle und wurde als Basisklasse... */
258 #pragma warning( default : 4275 )
259 #endif
260 //---------------------------------------------------------------------------
261} // namespace tcp
262//-----------------------------------------------------------------------------
263#endif
Header für EuEndlessPThread
Header für RepeatingThread
Für jede Bibliothek, hier 'TcpLib' gibt es eine Typen-Datei.
#define __tcp_export_dll
Definition TcpTypes.h:53
Basisklasse für einen Thread der seine Arbeit endlos bis zum Abbruch ausführt.
Definition EuEndlessPThread.h:69
Basisklasse für einen Thread der seine Arbeit endlos bis zum Abbruch ausführt.
Definition EuRepeatingThread.h:78
Oberklasse für alle Receiver und Transmitter, welche über ein SOCKET kommunizieren.
Definition TcpReceiverTransmitter.h:97
virtual void takeABreak() override
SOCKET m_Socket
Definition TcpReceiverTransmitter.h:110
ReceiverTransmitter(const ReceiverTransmitter &)
virtual void finishBreak() override
int getPeerName(std::string &rstrIPAdress, unsigned int &ruiPort) const
ReceiverTransmitter(SOCKET Socket)
Definition TcpClient.h:48