00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034 #ifndef PTLIB_TCPSOCKET_H
00035 #define PTLIB_TCPSOCKET_H
00036
00037 #ifdef P_USE_PRAGMA
00038 #pragma interface
00039 #endif
00040
00041
00044 class PTCPSocket : public PIPSocket
00045 {
00046 PCLASSINFO(PTCPSocket, PIPSocket);
00047 public:
00057 PTCPSocket(
00058 WORD port = 0
00059 );
00060 PTCPSocket(
00061 const PString & service
00062 );
00063 PTCPSocket(
00064 const PString & address,
00065 WORD port
00066 );
00067 PTCPSocket(
00068 const PString & address,
00069 const PString & service
00070 );
00071 PTCPSocket(
00072 PSocket & socket
00073 );
00074 PTCPSocket(
00075 PTCPSocket & tcpSocket
00076 );
00078
00093 virtual PObject * Clone() const;
00095
00112 virtual PBoolean Write(
00113 const void * buf,
00114 PINDEX len
00115 );
00117
00140 virtual PBoolean Listen(
00141 unsigned queueSize = 5,
00142 WORD port = 0,
00143 Reusability reuse = AddressIsExclusive
00144 );
00145 virtual PBoolean Listen(
00146 const Address & bind,
00147 unsigned queueSize = 5,
00148 WORD port = 0,
00149 Reusability reuse = AddressIsExclusive
00150 );
00151
00166 virtual PBoolean Accept(
00167 PSocket & socket
00168 );
00170
00184 virtual PBoolean WriteOutOfBand(
00185 const void * buf,
00186 PINDEX len
00187 );
00188
00195 virtual void OnOutOfBand(
00196 const void * buf,
00197 PINDEX len
00198 );
00200
00201
00202 protected:
00203
00204 virtual PBoolean OpenSocket();
00205
00206
00207 virtual PBoolean OpenSocket(
00208 int ipAdressFamily
00209 );
00210
00211 virtual const char * GetProtocolName() const;
00212
00213
00214
00215 #ifdef _WIN32
00216 #include "msos/ptlib/tcpsock.h"
00217 #else
00218 #include "unix/ptlib/tcpsock.h"
00219 #endif
00220 };
00221
00222 #endif // PTLIB_TCPSOCKET_H
00223
00224
00225