12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091 |
- //
- // ICMPSocket.h
- //
- // Library: Net
- // Package: ICMP
- // Module: ICMPSocket
- //
- // Definition of the ICMPSocket class.
- //
- // Copyright (c) 2006, Applied Informatics Software Engineering GmbH.
- // and Contributors.
- //
- // SPDX-License-Identifier: BSL-1.0
- //
- #ifndef Net_ICMPSocket_INCLUDED
- #define Net_ICMPSocket_INCLUDED
- #include "Poco/Net/Net.h"
- #include "Poco/Net/Socket.h"
- namespace Poco {
- namespace Net {
- class Net_API ICMPSocket: public Socket
- /// This class provides an interface to an
- /// ICMP client socket.
- {
- public:
- ICMPSocket(SocketAddress::Family family, int dataSize = 48, int ttl = 128, int timeout = 5000000);
- /// Creates an unconnected ICMP socket.
- ///
- /// The socket will be created for the
- /// given address family.
- ICMPSocket(const Socket& socket);
- /// Creates the ICMPSocket with the SocketImpl
- /// from another socket. The SocketImpl must be
- /// a ICMPSocketImpl, otherwise an InvalidArgumentException
- /// will be thrown.
- ~ICMPSocket();
- /// Destroys the ICMPSocket.
- ICMPSocket& operator = (const Socket& socket);
- /// Assignment operator.
- ///
- /// Releases the socket's SocketImpl and
- /// attaches the SocketImpl from the other socket and
- /// increments the reference count of the SocketImpl.
- int sendTo(const SocketAddress& address, int flags = 0);
- /// Sends an ICMP request through
- /// the socket to the given address.
- ///
- /// Returns the number of bytes sent.
- int receiveFrom(SocketAddress& address, int flags = 0);
- /// Receives data from the socket.
- /// Stores the address of the sender in address.
- ///
- /// Returns the time elapsed since the originating
- /// request was sent.
- int dataSize() const;
- /// Returns the data size in bytes.
- int ttl() const;
- /// Returns the Time-To-Live value.
- int timeout() const;
- /// Returns the socket timeout value.
- protected:
- ICMPSocket(SocketImpl* pImpl);
- /// Creates the Socket and attaches the given SocketImpl.
- /// The socket takes ownership of the SocketImpl.
- ///
- /// The SocketImpl must be a ICMPSocketImpl, otherwise
- /// an InvalidArgumentException will be thrown.
- };
- } } // namespace Poco::Net
- #endif // Net_ICMPSocket_INCLUDED
|