<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>Class Poco::Net::ICMPSocket</title> <meta http-equiv="content-type" content="text/html; charset=utf-8"/> <meta name="author" content="Applied Informatics Software Engineering GmbH and Contributors"/> <meta name="publisher" content="Applied Informatics Software Engineering GmbH and Contributors"/> <meta name="copyright" content="Copyright (c) 2009, Applied Informatics Software Engineering GmbH and Contributors"/> <meta name="language" content="en"/> <meta name="date" content="2009-11-24"/> <meta name="generator" content="PocoDoc"/> <link rel="stylesheet" href="css/styles.css" type="text/css"/> </head> <body bgcolor="#ffffff" leftmargin="0" topmargin="0"> <div class="header"> <h1 class="namespace"><a href="Poco.Net.html" class="namespace">Poco::Net</a></h1> <h1 class="symbol">class ICMPSocket</h1> </div> <div class="body"> <p> <b>Library:</b> Net<br /> <b>Package:</b> ICMP<br /> <b>Header:</b> Poco/Net/ICMPSocket.h</p> <h2>Description</h2> <div class="description"> <p>This class provides an interface to an ICMP client socket. </p> </div> <h2>Inheritance</h2> <p><b>Direct Base Classes: </b><a href="Poco.Net.Socket.html" title="class Poco::Net::Socket">Socket</a></p> <p><b>All Base Classes: </b><a href="Poco.Net.Socket.html" title="class Poco::Net::Socket">Socket</a></p> <h2>Member Summary</h2> <p><b>Member Functions: </b><a href="Poco.Net.ICMPSocket.html#13481" title="Poco::Net::ICMPSocket::dataSize()">dataSize</a>, <a href="Poco.Net.ICMPSocket.html#13473" title="Poco::Net::ICMPSocket::operator =()">operator =</a>, <a href="Poco.Net.ICMPSocket.html#13478" title="Poco::Net::ICMPSocket::receiveFrom()">receiveFrom</a>, <a href="Poco.Net.ICMPSocket.html#13475" title="Poco::Net::ICMPSocket::sendTo()">sendTo</a>, <a href="Poco.Net.ICMPSocket.html#13483" title="Poco::Net::ICMPSocket::timeout()">timeout</a>, <a href="Poco.Net.ICMPSocket.html#13482" title="Poco::Net::ICMPSocket::ttl()">ttl</a></p> <p><b>Inherited Functions: </b><a href="Poco.Net.Socket.html#15077" title="Poco::Net::Socket::address()">address</a>, <a href="Poco.Net.Socket.html#15000" title="Poco::Net::Socket::available()">available</a>, <a href="Poco.Net.Socket.html#14991" title="Poco::Net::Socket::close()">close</a>, <a href="Poco.Net.Socket.html#15076" title="Poco::Net::Socket::getBlocking()">getBlocking</a>, <a href="Poco.Net.Socket.html#15064" title="Poco::Net::Socket::getKeepAlive()">getKeepAlive</a>, <a href="Poco.Net.Socket.html#15056" title="Poco::Net::Socket::getLinger()">getLinger</a>, <a href="Poco.Net.Socket.html#15061" title="Poco::Net::Socket::getNoDelay()">getNoDelay</a>, <a href="Poco.Net.Socket.html#15073" title="Poco::Net::Socket::getOOBInline()">getOOBInline</a>, <a href="Poco.Net.Socket.html#15033" title="Poco::Net::Socket::getOption()">getOption</a>, <a href="Poco.Net.Socket.html#15006" title="Poco::Net::Socket::getReceiveBufferSize()">getReceiveBufferSize</a>, <a href="Poco.Net.Socket.html#15012" title="Poco::Net::Socket::getReceiveTimeout()">getReceiveTimeout</a>, <a href="Poco.Net.Socket.html#15067" title="Poco::Net::Socket::getReuseAddress()">getReuseAddress</a>, <a href="Poco.Net.Socket.html#15070" title="Poco::Net::Socket::getReusePort()">getReusePort</a>, <a href="Poco.Net.Socket.html#15003" title="Poco::Net::Socket::getSendBufferSize()">getSendBufferSize</a>, <a href="Poco.Net.Socket.html#15009" title="Poco::Net::Socket::getSendTimeout()">getSendTimeout</a>, <a href="Poco.Net.Socket.html#15079" title="Poco::Net::Socket::impl()">impl</a>, <a href="Poco.Net.Socket.html#14981" title="Poco::Net::Socket::operator !=()">operator !=</a>, <a href="Poco.Net.Socket.html#14983" title="Poco::Net::Socket::operator <()">operator <</a>, <a href="Poco.Net.Socket.html#14985" title="Poco::Net::Socket::operator <=()">operator <=</a>, <a href="Poco.Net.Socket.html#14976" title="Poco::Net::Socket::operator =()">operator =</a>, <a href="Poco.Net.Socket.html#14979" title="Poco::Net::Socket::operator ==()">operator ==</a>, <a href="Poco.Net.Socket.html#14987" title="Poco::Net::Socket::operator >()">operator ></a>, <a href="Poco.Net.Socket.html#14989" title="Poco::Net::Socket::operator >=()">operator >=</a>, <a href="Poco.Net.Socket.html#15078" title="Poco::Net::Socket::peerAddress()">peerAddress</a>, <a href="Poco.Net.Socket.html#14997" title="Poco::Net::Socket::poll()">poll</a>, <a href="Poco.Net.Socket.html#14992" title="Poco::Net::Socket::select()">select</a>, <a href="Poco.Net.Socket.html#15074" title="Poco::Net::Socket::setBlocking()">setBlocking</a>, <a href="Poco.Net.Socket.html#15062" title="Poco::Net::Socket::setKeepAlive()">setKeepAlive</a>, <a href="Poco.Net.Socket.html#15053" title="Poco::Net::Socket::setLinger()">setLinger</a>, <a href="Poco.Net.Socket.html#15059" title="Poco::Net::Socket::setNoDelay()">setNoDelay</a>, <a href="Poco.Net.Socket.html#15071" title="Poco::Net::Socket::setOOBInline()">setOOBInline</a>, <a href="Poco.Net.Socket.html#15013" title="Poco::Net::Socket::setOption()">setOption</a>, <a href="Poco.Net.Socket.html#15004" title="Poco::Net::Socket::setReceiveBufferSize()">setReceiveBufferSize</a>, <a href="Poco.Net.Socket.html#15010" title="Poco::Net::Socket::setReceiveTimeout()">setReceiveTimeout</a>, <a href="Poco.Net.Socket.html#15065" title="Poco::Net::Socket::setReuseAddress()">setReuseAddress</a>, <a href="Poco.Net.Socket.html#15068" title="Poco::Net::Socket::setReusePort()">setReusePort</a>, <a href="Poco.Net.Socket.html#15001" title="Poco::Net::Socket::setSendBufferSize()">setSendBufferSize</a>, <a href="Poco.Net.Socket.html#15007" title="Poco::Net::Socket::setSendTimeout()">setSendTimeout</a>, <a href="Poco.Net.Socket.html#15084" title="Poco::Net::Socket::sockfd()">sockfd</a>, <a href="Poco.Net.Socket.html#15080" title="Poco::Net::Socket::supportsIPv4()">supportsIPv4</a>, <a href="Poco.Net.Socket.html#15081" title="Poco::Net::Socket::supportsIPv6()">supportsIPv6</a></p> <h2>Constructors</h2> <h3><a name="13470">ICMPSocket</a></h3> <p class="decl"><a href="Poco.Net.ICMPSocket.html" title="class Poco::Net::ICMPSocket">ICMPSocket</a>(<br /> const <a href="Poco.Net.Socket.html" title="class Poco::Net::Socket">Socket</a> & socket<br />);</p> <div class="description"> <p>Creates the <a href="Poco.Net.ICMPSocket.html" title="class Poco::Net::ICMPSocket">ICMPSocket</a> with the <a href="Poco.Net.SocketImpl.html" title="class Poco::Net::SocketImpl">SocketImpl</a> from another socket. The <a href="Poco.Net.SocketImpl.html" title="class Poco::Net::SocketImpl">SocketImpl</a> must be a <a href="Poco.Net.DatagramSocketImpl.html" title="class Poco::Net::DatagramSocketImpl">DatagramSocketImpl</a>, otherwise an <a href="Poco.InvalidArgumentException.html" title="class Poco::InvalidArgumentException">InvalidArgumentException</a> will be thrown. </p> </div> <h3><a name="13465">ICMPSocket</a></h3> <p class="decl"><a href="Poco.Net.ICMPSocket.html" title="class Poco::Net::ICMPSocket">ICMPSocket</a>(<br /> <a href="Poco.Net.IPAddress.html#13594" title="enum Poco::Net::IPAddress::Family">IPAddress::Family</a> family,<br /> int dataSize = 48,<br /> int ttl = 128,<br /> int timeout = 500000<br />);</p> <div class="description"> <p>Creates an unconnected ICMP socket. </p> <p>The socket will be created for the given address family. </p> </div> <h3><a name="13484">ICMPSocket</a> <img src="images/protected.gif" alt="protected" title="protected" style="vertical-align:baseline;" border="0" /> </h3> <p class="decl"><a href="Poco.Net.ICMPSocket.html" title="class Poco::Net::ICMPSocket">ICMPSocket</a>(<br /> <a href="Poco.Net.SocketImpl.html" title="class Poco::Net::SocketImpl">SocketImpl</a> * pImpl<br />);</p> <div class="description"> <p>Creates the <a href="Poco.Net.Socket.html" title="class Poco::Net::Socket">Socket</a> and attaches the given <a href="Poco.Net.SocketImpl.html" title="class Poco::Net::SocketImpl">SocketImpl</a>. The socket takes owership of the <a href="Poco.Net.SocketImpl.html" title="class Poco::Net::SocketImpl">SocketImpl</a>. </p> <p>The <a href="Poco.Net.SocketImpl.html" title="class Poco::Net::SocketImpl">SocketImpl</a> must be a <a href="Poco.Net.ICMPSocketImpl.html" title="class Poco::Net::ICMPSocketImpl">ICMPSocketImpl</a>, otherwise an <a href="Poco.InvalidArgumentException.html" title="class Poco::InvalidArgumentException">InvalidArgumentException</a> will be thrown. </p> </div> <h2>Destructor</h2> <h3><a name="13472">~ICMPSocket</a> <img src="images/virtual.gif" alt="virtual" title="virtual" style="vertical-align:baseline;" border="0" /> </h3> <p class="decl">~<a href="Poco.Net.ICMPSocket.html" title="class Poco::Net::ICMPSocket">ICMPSocket</a>();</p> <div class="description"> <p>Destroys the <a href="Poco.Net.ICMPSocket.html" title="class Poco::Net::ICMPSocket">ICMPSocket</a>. </p> </div> <h2>Member Functions</h2> <h3><a name="13481">dataSize</a> <img src="images/inline.gif" alt="inline" title="inline" style="vertical-align:baseline;" border="0" /> </h3> <p class="decl">int dataSize() const;</p> <div class="description"> <p>Returns the data size in bytes. </p> </div> <h3><a name="13473">operator =</a></h3> <p class="decl"><a href="Poco.Net.ICMPSocket.html" title="class Poco::Net::ICMPSocket">ICMPSocket</a> & operator = (<br /> const <a href="Poco.Net.Socket.html" title="class Poco::Net::Socket">Socket</a> & socket<br />);</p> <div class="description"> <p>Assignment operator. </p> <p>Releases the socket's <a href="Poco.Net.SocketImpl.html" title="class Poco::Net::SocketImpl">SocketImpl</a> and attaches the <a href="Poco.Net.SocketImpl.html" title="class Poco::Net::SocketImpl">SocketImpl</a> from the other socket and increments the reference count of the <a href="Poco.Net.SocketImpl.html" title="class Poco::Net::SocketImpl">SocketImpl</a>. </p> </div> <h3><a name="13478">receiveFrom</a></h3> <p class="decl">int receiveFrom(<br /> <a href="Poco.Net.SocketAddress.html" title="class Poco::Net::SocketAddress">SocketAddress</a> & address,<br /> int flags = 0<br />);</p> <div class="description"> <p>Receives data from the socket. Stores the address of the sender in address. </p> <p>Returns the time elapsed since the originating request was sent. </p> </div> <h3><a name="13475">sendTo</a></h3> <p class="decl">int sendTo(<br /> const <a href="Poco.Net.SocketAddress.html" title="class Poco::Net::SocketAddress">SocketAddress</a> & address,<br /> int flags = 0<br />);</p> <div class="description"> <p>Sends an ICMP request through the socket to the given address. </p> <p>Returns the number of bytes sent. </p> </div> <h3><a name="13483">timeout</a> <img src="images/inline.gif" alt="inline" title="inline" style="vertical-align:baseline;" border="0" /> </h3> <p class="decl">int timeout() const;</p> <div class="description"> <p>Returns the socket timeout value. </p> </div> <h3><a name="13482">ttl</a> <img src="images/inline.gif" alt="inline" title="inline" style="vertical-align:baseline;" border="0" /> </h3> <p class="decl">int ttl() const;</p> <div class="description"> <p>Returns the Time-To-Live value. </p> </div> <p class="footer">POCO C++ Libraries 1.3.6-all<br /> Copyright © 2009, <a href="http://pocoproject.org/" target="_blank">Applied Informatics Software Engineering GmbH and Contributors</a></p> </div> </body> </html>