This class describes a type of socket that will communicate using the Internet Protocol.  
 More...
|  | 
| virtual bool | InternalGetLocalAddress (AddressAndPort &addrAndPort) | 
|  | 
| virtual bool | InternalGetPeerAddress (AddressAndPort &addrAndPort) | 
|  | 
| virtual bool | InternalListen (const Address &bind, unsigned queueSize, WORD port, Reusability reuse) | 
|  | 
|  | 
| virtual PBoolean | Connect (const PString &address) | 
|  | Connect a socket to a remote host on the specified port number.  More... 
 | 
|  | 
| virtual PBoolean | Connect (const Address &addr) | 
|  | 
| virtual PBoolean | Connect (WORD localPort, const Address &addr) | 
|  | 
| virtual PBoolean | Connect (const Address &iface, const Address &addr) | 
|  | 
| virtual PBoolean | Connect (const Address &iface, WORD localPort, const Address &addr) | 
|  | 
| virtual PBoolean | Listen (unsigned queueSize=5, WORD port=0, Reusability reuse=AddressIsExclusive) | 
|  | Listen on a socket for a remote host on the specified port number.  More... 
 | 
|  | 
| virtual PBoolean | Listen (const Address &bind, unsigned queueSize=5, WORD port=0, Reusability reuse=AddressIsExclusive) | 
|  | 
|  | 
| This describes in a platform and as protocol independent way as possible the quality of service. How it produces, for example, DiffServ and RSVP is up to the underlying operating system.  | 
| virtual bool | SetQoS (const QoS &qos) | 
|  | Set the current Quality of Service.  More... 
 | 
|  | 
| const QoS & | GetQoS () const | 
|  | Get the current Quality of Service.  More... 
 | 
|  | 
| virtual bool | Read (void *ptr, PINDEX len) | 
|  | Low level read from the channel.  More... 
 | 
|  | 
| virtual bool | Write (const void *buf, PINDEX len) | 
|  | Low level write to the channel.  More... 
 | 
|  | 
|  | ~PSocket () | 
|  | 
| PBoolean | SetOption (int option, int value, int level=SOL_SOCKET) | 
|  | Set options on the socket.  More... 
 | 
|  | 
| PBoolean | SetOption (int option, const void *valuePtr, PINDEX valueSize, int level=SOL_SOCKET) | 
|  | Set options on the socket.  More... 
 | 
|  | 
| PBoolean | GetOption (int option, int &value, int level=SOL_SOCKET) | 
|  | Get options on the socket.  More... 
 | 
|  | 
| PBoolean | GetOption (int option, void *valuePtr, PINDEX valueSize, int level=SOL_SOCKET) | 
|  | Get options on the socket.  More... 
 | 
|  | 
| virtual bool | Read (Slice *slices, size_t sliceCount) | 
|  | Low level scattered read from the channel.  More... 
 | 
|  | 
| virtual bool | Write (const Slice *slices, size_t sliceCount) | 
|  | Low level scattered write to the channel.  More... 
 | 
|  | 
| virtual PBoolean | Accept (PSocket &socket) | 
|  | Open a socket to a remote host on the specified port number.  More... 
 | 
|  | 
| virtual PBoolean | Shutdown (ShutdownValue option) | 
|  | Close one or both of the data streams associated with a socket.  More... 
 | 
|  | 
| virtual WORD | GetPortByService (const PString &service) const | 
|  | Get the port number for the specified service name.  More... 
 | 
|  | 
| virtual PString | GetServiceByPort (WORD port) const | 
|  | Get the service name from the port number.  More... 
 | 
|  | 
| void | SetPort (WORD port) | 
|  | Set the port number for the channel.  More... 
 | 
|  | 
| void | SetPort (const PString &service) | 
|  | Set the port number for the channel.  More... 
 | 
|  | 
| WORD | GetPort () const | 
|  | Get the port the TCP socket channel object instance is using.  More... 
 | 
|  | 
| PString | GetService () const | 
|  | Get a service name for the port number the TCP socket channel object instance is using.  More... 
 | 
|  | 
| PBoolean | SetErrorValues (Errors errorCode, int osError, ErrorGroup group=LastGeneralError) | 
|  | Set error values to those specified.  More... 
 | 
|  | 
| virtual Comparison | Compare (const PObject &obj) const | 
|  | Get the relative rank of the two strings.  More... 
 | 
|  | 
| virtual PINDEX | HashFunction () const | 
|  | Calculate a hash value for use in sets and dictionaries.  More... 
 | 
|  | 
| virtual PBoolean | IsOpen () const | 
|  | Determine if the channel is currently open.  More... 
 | 
|  | 
| virtual P_INT_PTR | GetHandle () const | 
|  | Get the integer operating system handle for the channel.  More... 
 | 
|  | 
| FILE * | FDOpen (const char *mode) | 
|  | Re-open the device using the stdio library.  More... 
 | 
|  | 
| virtual PChannel * | GetBaseReadChannel () const | 
|  | Get the base channel of channel indirection using PIndirectChannel.  More... 
 | 
|  | 
| virtual PChannel * | GetBaseWriteChannel () const | 
|  | Get the base channel of channel indirection using PIndirectChannel.  More... 
 | 
|  | 
| void | SetReadTimeout (const PTimeInterval &time) | 
|  | Set the timeout for read operations.  More... 
 | 
|  | 
| PTimeInterval | GetReadTimeout () const | 
|  | Get the timeout for read operations.  More... 
 | 
|  | 
| PINDEX | GetLastReadCount () const | 
|  | Get the number of bytes read by the last Read() call.  More... 
 | 
|  | 
| virtual int | ReadChar () | 
|  | Read a single character from the channel.  More... 
 | 
|  | 
| PBoolean | ReadBlock (void *buf, PINDEX len) | 
|  | Read len bytes into the buffer from the channel.  More... 
 | 
|  | 
| PString | ReadString (PINDEX len) | 
|  | Read lencharacter into a string from the channel.  More...
 | 
|  | 
| void | SetWriteTimeout (const PTimeInterval &time) | 
|  | Set the timeout for write operations to complete.  More... 
 | 
|  | 
| PTimeInterval | GetWriteTimeout () const | 
|  | Get the timeout for write operations to complete.  More... 
 | 
|  | 
| virtual PBoolean | Write (const void *buf, PINDEX len, const void *) | 
|  | Low level write to the channel with marker.  More... 
 | 
|  | 
| virtual PINDEX | GetLastWriteCount () const | 
|  | Get the number of bytes written by the last Write() call.  More... 
 | 
|  | 
| PBoolean | WriteChar (int c) | 
|  | Write a single character to the channel.  More... 
 | 
|  | 
| PBoolean | WriteString (const PString &str) | 
|  | Write a string to the channel.  More... 
 | 
|  | 
|  | ~PChannel () | 
|  | Close down the channel.  More... 
 | 
|  | 
| Errors | GetErrorCode (ErrorGroup group=NumErrorGroups) const | 
|  | Get normalised error code.  More... 
 | 
|  | 
| int | GetErrorNumber (ErrorGroup group=NumErrorGroups) const | 
|  | Get OS errro code.  More... 
 | 
|  | 
| virtual PString | GetErrorText (ErrorGroup group=NumErrorGroups) const | 
|  | Get error message description.  More... 
 | 
|  | 
| virtual bool | ReadAsync (AsyncContext &context) | 
|  | Begin an asynchronous read from channel.  More... 
 | 
|  | 
| virtual void | OnReadComplete (AsyncContext &context) | 
|  | User callback function for when a ReadAsync()call has completed or timed out.  More...
 | 
|  | 
| virtual bool | WriteAsync (AsyncContext &context) | 
|  | Begin an asynchronous write from channel.  More... 
 | 
|  | 
| virtual void | OnWriteComplete (AsyncContext &context) | 
|  | User callback function for when a WriteAsync() call has completed or timed out.  More... 
 | 
|  | 
| virtual PBoolean | Close () | 
|  | Close the channel, shutting down the link to the data source.  More... 
 | 
|  | 
| virtual bool | SetLocalEcho (bool localEcho) | 
|  | Set local echo mode.  More... 
 | 
|  | 
| virtual bool | FlowControl (const void *flowData) | 
|  | Flow Control information Pass data to the channel for flowControl determination.  More... 
 | 
|  | 
| PBoolean | SetBufferSize (PINDEX newSize) | 
|  | Set the iostream buffer size for reads and writes.  More... 
 | 
|  | 
| PBoolean | SendCommandString (const PString &command) | 
|  | Send a command meta-string.  More... 
 | 
|  | 
| void | AbortCommandString () | 
|  | Abort a command string that is in progress.  More... 
 | 
|  | 
| unsigned | GetTraceContextIdentifier () const | 
|  | Get PTRACE context identifier.  More... 
 | 
|  | 
| void | SetTraceContextIdentifier (unsigned id) | 
|  | 
| void | GetTraceContextIdentifier (PObject &obj) | 
|  | 
| void | GetTraceContextIdentifier (PObject *obj) | 
|  | 
| void | SetTraceContextIdentifier (const PObject &obj) | 
|  | 
| void | SetTraceContextIdentifier (const PObject *obj) | 
|  | 
| virtual | ~PObject () | 
|  | 
| virtual PObject * | Clone () const | 
|  | Create a copy of the class on the heap.  More... 
 | 
|  | 
| template<class CLS > | 
| CLS * | CloneAs () const | 
|  | As for Clone() but converts to specified type.  More... 
 | 
|  | 
| virtual Comparison | CompareObjectMemoryDirect (const PObject &obj) const | 
|  | Determine the byte wise comparison of two objects.  More... 
 | 
|  | 
| bool | operator== (const PObject &obj) const | 
|  | Compare the two objects.  More... 
 | 
|  | 
| bool | operator!= (const PObject &obj) const | 
|  | Compare the two objects.  More... 
 | 
|  | 
| bool | operator< (const PObject &obj) const | 
|  | Compare the two objects.  More... 
 | 
|  | 
| bool | operator> (const PObject &obj) const | 
|  | Compare the two objects.  More... 
 | 
|  | 
| bool | operator<= (const PObject &obj) const | 
|  | Compare the two objects.  More... 
 | 
|  | 
| bool | operator>= (const PObject &obj) const | 
|  | Compare the two objects.  More... 
 | 
|  | 
| virtual const char * | GetClass (unsigned ancestor=0) const | 
|  | Get the current dynamic type of the object instance.  More... 
 | 
|  | 
| PBoolean | IsClass (const char *cls) const | 
|  | 
| virtual PBoolean | InternalIsDescendant (const char *clsName) const | 
|  | Determine if the dynamic type of the current instance is a descendent of the specified class.  More... 
 | 
|  | 
| __inline const PObject * | PTraceObjectInstance () const | 
|  | 
| virtual void | PrintOn (ostream &strm) const | 
|  | Output the contents of the object to the stream.  More... 
 | 
|  | 
| virtual void | ReadFrom (istream &strm) | 
|  | Input the contents of the object from the stream.  More... 
 | 
|  | 
|  | 
| PString | GetLocalAddress () const | 
|  | Get the Internet Protocol address and port for the local host.  More... 
 | 
|  | 
| bool | GetLocalAddress (Address &addr) const | 
|  | 
| bool | GetLocalAddress (Address &addr, WORD &port) const | 
|  | 
| bool | GetLocalAddress (AddressAndPort &addr) const | 
|  | 
| PString | GetPeerAddress () const | 
|  | Get the Internet Protocol address for the peer host and port the socket is connected to.  More... 
 | 
|  | 
| bool | GetPeerAddress (Address &addr) const | 
|  | 
| bool | GetPeerAddress (Address &addr, WORD &port) const | 
|  | 
| bool | GetPeerAddress (AddressAndPort &addr) const | 
|  | 
| PString | GetLocalHostName () | 
|  | Get the host name for the local host.  More... 
 | 
|  | 
| PString | GetPeerHostName () | 
|  | Get the host name for the peer host the socket is connected to.  More... 
 | 
|  | 
|  | PARRAY (RouteTable, RouteEntry) | 
|  | 
|  | PARRAY (InterfaceTable, InterfaceEntry) | 
|  | 
|  | P_DECLARE_ENUM (QoSType, BackgroundQoS, BestEffortQoS, ExcellentEffortQoS, CriticalQoS, VideoQoS, VoiceQoS, ControlQoS) | 
|  | The types of QoS supported, based on IEEE P802.1p TrafficClass parameter.  More... 
 | 
|  | 
| static PString | GetHostName () | 
|  | Get the "official" host name for the host specified or if none, the host this process is running on.  More... 
 | 
|  | 
| static PString | GetHostName (const PString &hostname) | 
|  | 
| static PString | GetHostName (const Address &addr) | 
|  | 
| static PBoolean | GetHostAddress (Address &addr) | 
|  | Get the Internet Protocol address for the specified host, or if none specified, for the host this process is running on.  More... 
 | 
|  | 
| static PBoolean | GetHostAddress (const PString &hostname, Address &addr) | 
|  | 
| static PStringArray | GetHostAliases (const PString &hostname) | 
|  | Get the alias host names for the specified host.  More... 
 | 
|  | 
| static PStringArray | GetHostAliases (const Address &addr) | 
|  | 
| static PBoolean | IsLocalHost (const PString &hostname) | 
|  | Determine if the specified host is actually the local machine.  More... 
 | 
|  | 
| static void | ClearNameCache () | 
|  | Clear the name (DNS) cache.  More... 
 | 
|  | 
| static PBoolean | GetRouteTable (RouteTable &table) | 
|  | Get the systems route table.  More... 
 | 
|  | 
| static RouteTableDetector * | CreateRouteTableDetector () | 
|  | Create an object that can wait for a change in the route table or active network interfaces.  More... 
 | 
|  | 
| static PBoolean | GetInterfaceTable (InterfaceTable &table, PBoolean includeDown=false) | 
|  | Get a list of all interfaces.  More... 
 | 
|  | 
| static PString | GetInterface (const Address &addr) | 
|  | Get the interface name for the specified local IP address.  More... 
 | 
|  | 
| static Address | GetInterfaceAddress (const PString &ifName, unsigned version=4) | 
|  | Get the interface name for the specified local IP address.  More... 
 | 
|  | 
| static PString | GetInterfaceMACAddress (const char *ifName=NULL) | 
|  | Get MAC address of interface.  More... 
 | 
|  | 
| static Address | GetNetworkInterface (unsigned version=4) | 
|  | Get the address of the first interface to the "Internet".  More... 
 | 
|  | 
| static Address | GetGatewayAddress (unsigned version=4) | 
|  | Get the IP address that is being used as the gateway, that is, the computer that packets on the default route will be sent.  More... 
 | 
|  | 
| static PString | GetGatewayInterface (unsigned version=4) | 
|  | Get the name for the interface that is being used as the gateway, that is, the interface that packets on the default route will be sent.  More... 
 | 
|  | 
| static Address | GetGatewayInterfaceAddress (unsigned version=4) | 
|  | Get the IP address for the interface that is being used as the gateway, that is, the interface that packets on the default route will be sent.  More... 
 | 
|  | 
| static Address | GetRouteInterfaceAddress (const Address &remoteAddress) | 
|  | Get the interface address that will be used to reach the specified remote address.  More... 
 | 
|  | 
|  | 
| enum | Reusability { CanReuseAddress, 
AddressIsExclusive
 } | 
|  | Flags to reuse of port numbers in Listen() function.  More... 
 | 
|  | 
| enum | PXBlockType { PXReadBlock, 
PXWriteBlock, 
PXAcceptBlock, 
PXConnectBlock
 } | 
|  | 
| enum | Errors { NoError, 
NotFound, 
FileExists, 
DiskFull,
 AccessDenied, 
DeviceInUse, 
BadParameter, 
NoMemory,
 NotOpen, 
Timeout, 
Interrupted, 
BufferTooSmall,
 Miscellaneous, 
ProtocolFailure, 
Unavailable, 
NumNormalisedErrors
 }
 | 
|  | Normalised error codes.  More... 
 | 
|  | 
| enum | ErrorGroup { LastReadError, 
LastWriteError, 
LastGeneralError, 
NumErrorGroups
 } | 
|  | Error groups.  More... 
 | 
|  | 
| typedef PNotifierTemplate < PChannel::AsyncContext & >
 | AsyncNotifier | 
|  | 
| enum | ShutdownValue { ShutdownRead = 0, 
ShutdownWrite = 1, 
ShutdownReadAndWrite = 2
 } | 
|  | 
| static int | Select (PSocket &sock1, PSocket &sock2) | 
|  | Select a socket with available data.  More... 
 | 
|  | 
| static int | Select (PSocket &sock1, PSocket &sock2, const PTimeInterval &timeout) | 
|  | Select a socket with available data.  More... 
 | 
|  | 
| static Errors | Select (SelectList &read) | 
|  | Select a socket with available data.  More... 
 | 
|  | 
| static Errors | Select (SelectList &read, const PTimeInterval &timeout) | 
|  | Select a socket with available data.  More... 
 | 
|  | 
| static Errors | Select (SelectList &read, SelectList &write) | 
|  | Select a socket with available data.  More... 
 | 
|  | 
| static Errors | Select (SelectList &read, SelectList &write, const PTimeInterval &timeout) | 
|  | Select a socket with available data.  More... 
 | 
|  | 
| static Errors | Select (SelectList &read, SelectList &write, SelectList &except) | 
|  | Select a socket with available data.  More... 
 | 
|  | 
| static Errors | Select (SelectList &read, SelectList &write, SelectList &except, const PTimeInterval &timeout) | 
|  | Select a socket with available data.  More... 
 | 
|  | 
| static WORD | Host2Net (WORD v) | 
|  | Convert from host to network byte order.  More... 
 | 
|  | 
| static DWORD | Host2Net (DWORD v) | 
|  | Convert from host to network byte order.  More... 
 | 
|  | 
| static WORD | Net2Host (WORD v) | 
|  | Convert from network to host byte order.  More... 
 | 
|  | 
| static DWORD | Net2Host (DWORD v) | 
|  | Convert from network to host byte order.  More... 
 | 
|  | 
| static WORD | GetProtocolByName (const PString &name) | 
|  | Get the number of the protocol associated with the specified name.  More... 
 | 
|  | 
| static PString | GetNameByProtocol (WORD proto) | 
|  | Get the name of the protocol number specified.  More... 
 | 
|  | 
| static WORD | GetPortByService (const char *protocol, const PString &service) | 
|  | Get the port number for the specified service name.  More... 
 | 
|  | 
| static PString | GetServiceByPort (const char *protocol, WORD port) | 
|  | Get the service name from the port number.  More... 
 | 
|  | 
This class describes a type of socket that will communicate using the Internet Protocol. 
If P_HAS_IPV6 is not set, IPv4 only is supported. If P_HAS_IPV6 is set, both IPv4 and IPv6 adresses are supported, with IPv4 as default. This allows to transparently use IPv4, IPv6 or Dual stack operating systems.