|
PTLib
Version 2.10.11
|
Create a socket channel that uses allows ICMP commands in the Internal Protocol. More...
#include <icmpsock.h>
Classes | |
| class | PingInfo |
| Information used by and obtained by the ping operation. More... | |
Public Member Functions | |
Construction | |
| PICMPSocket () | |
| Create a TCP/IP protocol socket channel. More... | |
Ping | |
| PBoolean | Ping (const PString &host) |
| Send an ECHO_REPLY message to the specified host and wait for a reply to be sent back. More... | |
| PBoolean | Ping (const PString &host, PingInfo &info) |
| Send an ECHO_REPLY message to the specified host and wait for a reply to be sent back. More... | |
Public Member Functions inherited from PIPDatagramSocket | |
| virtual PBoolean | ReadFrom (void *buf, PINDEX len, Address &addr, WORD &port) |
| Read a datagram from a remote computer. More... | |
| virtual PBoolean | WriteTo (const void *buf, PINDEX len, const Address &addr, WORD port) |
| Write a datagram to a remote computer. More... | |
Public Member Functions inherited from PIPSocket | |
| 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) |
| virtual PString | GetName () const |
| Get the platform and I/O channel type name of the channel. More... | |
| virtual PString | GetLocalAddress () |
| Get the Internet Protocol address and port for the local host. More... | |
| virtual PBoolean | GetLocalAddress (Address &addr) |
| virtual PBoolean | GetLocalAddress (PIPSocketAddressAndPort &addr) |
| virtual PBoolean | GetLocalAddress (Address &addr, WORD &port) |
| virtual PString | GetPeerAddress () |
| Get the Internet Protocol address for the peer host and port the socket is connected to. More... | |
| virtual PBoolean | GetPeerAddress (Address &addr) |
| virtual PBoolean | GetPeerAddress (PIPSocketAddressAndPort &addr) |
| virtual PBoolean | GetPeerAddress (Address &addr, WORD &port) |
| 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) | |
| PBoolean | SetCaptureReceiveToAddress () |
| Set flag to capture interface address for incoming packets. More... | |
| PIPSocket::Address | GetLastReceiveToAddress () const |
| Return the interface address of the last incoming packet. More... | |
Public Member Functions inherited from PSocket | |
| PBoolean | Read (void *ptr, PINDEX len) |
| Low level read from 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 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... | |
Public Member Functions inherited from PChannel | |
| PBoolean | SetErrorValues (Errors errorCode, int osError, ErrorGroup group=LastGeneralError) |
| Set error values to those specified. More... | |
| PChannel () | |
| Create the channel. More... | |
| ~PChannel () | |
| Close down the channel. 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... | |
| int | GetHandle () const |
| Get the integer operating system handle for the channel. 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... | |
| virtual PINDEX | GetLastReadCount () const |
| Get the number of bytes read by the last Read() call. More... | |
| virtual int | ReadChar () |
| Read a single 8 bit byte 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... | |
| virtual PBoolean | ReadAsync (void *buf, PINDEX len) |
| Begin an asynchronous read from channel. More... | |
| virtual void | OnReadComplete (void *buf, PINDEX len) |
User callback function for when a ReadAsync() call has completed or timed out. 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) |
| Low level write to the channel. More... | |
| virtual PBoolean | Write (const void *buf, PINDEX len, const void *mark) |
| 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... | |
| virtual PBoolean | WriteAsync (const void *buf, PINDEX len) |
| Begin an asynchronous write from channel. More... | |
| virtual void | OnWriteComplete (const void *buf, PINDEX len) |
| 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... | |
| 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 PBoolean | Read (const VectorOfSlice &slices) |
| Low level scattered read from the channel. More... | |
| virtual PBoolean | Write (const VectorOfSlice &slices) |
| Low level scattered write to the channel. More... | |
Public Member Functions inherited from PObject | |
| virtual | ~PObject () |
| virtual PObject * | Clone () const |
| Create a copy of the class on the heap. 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... | |
| 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... | |
Protected Member Functions | |
| const char * | GetProtocolName () const |
| This function returns the protocol name for the socket type. More... | |
| virtual PBoolean | OpenSocket () |
| virtual PBoolean | OpenSocket (int ipAdressFamily) |
| Open an IPv4 or IPv6 socket. More... | |
| PBoolean | WritePing (const PString &host, PingInfo &info) |
| PBoolean | ReadPing (PingInfo &info) |
Protected Member Functions inherited from PIPDatagramSocket | |
| PIPDatagramSocket () | |
| Create a TCP/IP protocol socket channel. More... | |
Protected Member Functions inherited from PIPSocket | |
| PIPSocket () | |
| Create a new Internet Protocol socket based on the port number specified. More... | |
Protected Member Functions inherited from PSocket | |
| PSocket () | |
| int | os_close () |
| int | os_socket (int af, int type, int proto) |
| PBoolean | os_connect (struct sockaddr *sin, PINDEX size) |
| PBoolean | os_recvfrom (void *buf, PINDEX len, int flags, struct sockaddr *from, PINDEX *fromlen) |
| PBoolean | os_sendto (const void *buf, PINDEX len, int flags, struct sockaddr *to, PINDEX tolen) |
| PBoolean | os_accept (PSocket &listener, struct sockaddr *addr, PINDEX *size) |
Protected Member Functions inherited from PChannel | |
| PChannel (const PChannel &) | |
| PChannel & | operator= (const PChannel &) |
| virtual PBoolean | ConvertOSError (int libcReturnValue, ErrorGroup group=LastGeneralError) |
| Convert an operating system error into platform independent error. More... | |
| int | ReadCharWithTimeout (PTimeInterval &timeout) |
| Read a character with specified timeout. More... | |
| PBoolean | ReceiveCommandString (int nextChar, const PString &reply, PINDEX &pos, PINDEX start) |
| PBoolean | PXSetIOBlock (PXBlockType type, const PTimeInterval &timeout) |
| int | PXClose () |
Protected Member Functions inherited from PObject | |
| PObject () | |
| Constructor for PObject, made protected so cannot ever create one on its own. More... | |
Additional Inherited Members | |
Static Public Member Functions inherited from PIPSocket | |
| static int | GetDefaultIpAddressFamily () |
| Set the default IP address familly. More... | |
| static void | SetDefaultIpAddressFamily (int ipAdressFamily) |
| static void | SetDefaultIpAddressFamilyV4 () |
| static PIPSocket::Address | GetDefaultIpAny () |
| static void | SetSuppressCanonicalName (bool suppress) |
| Set flag for suppress getting canonical name when doing lookup via hostname. More... | |
| static bool | GetSuppressCanonicalName () |
| Get flag for suppress getting canonical name when doing lookup via hostname. 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 | GetGatewayAddress (Address &addr, int 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 (int 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 PIPSocket::Address | GetRouteInterfaceAddress (PIPSocket::Address remoteAddress) |
| Get the interface address that will be used to reach the specified remote address. 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 PBoolean | GetNetworkInterface (PIPSocket::Address &addr) |
| Get the address of an interface that corresponds to a real network. More... | |
Static Public Member Functions inherited from PSocket | |
| 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... | |
Static Public Member Functions inherited from PChannel | |
| static PBoolean | ConvertOSError (int libcReturnValue, Errors &lastError, int &osError) |
| Convert an operating system error into platform independent error. More... | |
| static PString | GetErrorText (Errors lastError, int osError=0) |
| Get error message description. More... | |
Static Public Member Functions inherited from PObject | |
| static Comparison | InternalCompareObjectMemoryDirect (const PObject *obj1, const PObject *obj2, PINDEX size) |
| Internal function caled from CompareObjectMemoryDirect() More... | |
| static const char * | Class () |
| Get the name of the class as a C string. More... | |
Protected Attributes inherited from PSocket | |
| WORD | port |
| Port to be used by the socket when opening the channel. More... | |
Protected Attributes inherited from PChannel | |
| int | os_handle |
| The operating system file handle return by standard open() function. More... | |
| Errors | lastErrorCode [NumErrorGroups+1] |
| The platform independant error code. More... | |
| int | lastErrorNumber [NumErrorGroups+1] |
| The operating system error number (eg as returned by errno). More... | |
| PINDEX | lastReadCount |
| Number of byte last read by the Read() function. More... | |
| PINDEX | lastWriteCount |
| Number of byte last written by the Write() function. More... | |
| PTimeInterval | readTimeout |
| Timeout for read operations. More... | |
| PTimeInterval | writeTimeout |
| Timeout for write operations. More... | |
| PString | channelName |
| PMutex | px_threadMutex |
| PXBlockType | px_lastBlockType |
| PThread * | px_readThread |
| PThread * | px_writeThread |
| PMutex | px_writeMutex |
| PThread * | px_selectThread [3] |
| PMutex | px_selectMutex [3] |
Create a socket channel that uses allows ICMP commands in the Internal Protocol.
| PICMPSocket::PICMPSocket | ( | ) |
Create a TCP/IP protocol socket channel.
If a remote machine address or a "listening" socket is specified then the channel is also opened.
|
protectedvirtual |
This function returns the protocol name for the socket type.
Implements PSocket.
|
protectedvirtual |
Open an IPv4 or IPv6 socket.
Implements PIPSocket.
Send an ECHO_REPLY message to the specified host and wait for a reply to be sent back.
| host | Host to send ping. |
Send an ECHO_REPLY message to the specified host and wait for a reply to be sent back.
| host | Host to send ping. |
| info | Information on the ping and reply. |