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 len character 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.