# ACE_Ping_Socket Class Reference

This class is useful to perform ICMP echo checks (pinging) on the party of your interest. It may be used as well to check LAN-adapters against 3rd parties. More...

`#include <Ping_Socket.h>`

Inheritance diagram for ACE_Ping_Socket:

[legend]
Collaboration diagram for ACE_Ping_Socket:

[legend]
List of all members.

## Public Types

enum | { PING_BUFFER_SIZE = (1024 * 2) }

## Public Member Functions

| ACE_Ping_Socket (void)
| Default constructor.
| ACE_Ping_Socket (ACE_Addr const &local, int protocol=IPPROTO_ICMP, int reuse_addr=0)
| ~ACE_Ping_Socket (void)
| Destructor.
int | open (ACE_Addr const &local=ACE_Addr::sap_any, int protocol=IPPROTO_ICMP, int reuse_addr=0)
| Wrapper around the BSD-style `socket` system call (no QoS).
int | send_echo_check (ACE_INET_Addr &remote_addr, int to_connect=0)
| toConnect = 1 - makes connect to remote address
int | process_incoming_dgram (char *ptr, ssize_t len)
int | make_echo_check (ACE_INET_Addr &remote_addr, int to_connect=0, ACE_Time_Value const *timeout=&time_default_)
| toConnect = 1 - makes connect to remote address
char * | icmp_recv_buff (void)
void | dump (void) const
| Dump the state of an object.

## Public Attributes

| ACE_ALLOC_HOOK_DECLARE
| Declare the dynamic allocation hooks.

## Static Public Attributes

ACE_Time_Value const | time_default_

## Private Types

typedef ACE_ICMP_Socket | inherited

## Private Member Functions

int | receive_echo_reply (ACE_Time_Value const *timeout)
int | get_remote_addr (ACE_INET_Addr &addr) const
| Do not allow this function to percolate up to this interface.

## Private Attributes

char | icmp_send_buff_ [PING_BUFFER_SIZE]
char | icmp_recv_buff_ [PING_BUFFER_SIZE]
ACE_UINT16 | sequence_number_
int | connected_socket_

## Detailed Description

This class is useful to perform ICMP echo checks (pinging) on the party of your interest. It may be used as well to check LAN-adapters against 3rd parties.

## Member Typedef Documentation

typedef ACE_ICMP_Socket ACE_Ping_Socket::inherited `[private]`

## Member Enumeration Documentation

anonymous enum

Enumeration values:

  PING_BUFFER_SIZE |

## Constructor & Destructor Documentation

ACE_Ping_Socket::ACE_Ping_Socket | ( | void |  | ) |

| Default constructor.

ACE_Ping_Socket::ACE_Ping_Socket | ( | ACE_Addr const & | local,
|  | int | protocol = `IPPROTO_ICMP`,
|  | int | reuse_addr = `0`
| ) |

ACE_Ping_Socket::~ACE_Ping_Socket | ( | void |  | ) |

| Destructor.

## Member Function Documentation

void ACE_Ping_Socket::dump | ( | void |  | ) | const

| Dump the state of an object. Reimplemented from ACE_ICMP_Socket.

int ACE_Ping_Socket::get_remote_addr | ( | ACE_INET_Addr & | addr | ) | const`[private]`

| Do not allow this function to percolate up to this interface.

ACE_BEGIN_VERSIONED_NAMESPACE_DECL ACE_INLINE char * ACE_Ping_Socket::icmp_recv_buff | ( | void |  | ) |

int ACE_Ping_Socket::make_echo_check | ( | ACE_INET_Addr & | remote_addr,
|  | int | to_connect = `0`,
|  | ACE_Time_Value const * | timeout = `&time_default_`
| ) |

| toConnect = 1 - makes connect to remote address

int ACE_Ping_Socket::open | ( | ACE_Addr const & | local = `ACE_Addr::sap_any`,
|  | int | protocol = `IPPROTO_ICMP`,
|  | int | reuse_addr = `0`
| ) |

| Wrapper around the BSD-style `socket` system call (no QoS). Reimplemented from ACE_ICMP_Socket.

int ACE_Ping_Socket::process_incoming_dgram | ( | char * | ptr,
|  | ssize_t | len
| ) |

| To receive `ICMP_ECHOREPLY`. To be called after successfully sending `ICMP_ECHO`.

int ACE_Ping_Socket::receive_echo_reply | ( | ACE_Time_Value const * | timeout | ) | `[private]`

int ACE_Ping_Socket::send_echo_check | ( | ACE_INET_Addr & | remote_addr,
|  | int | to_connect = `0`
| ) |

| toConnect = 1 - makes connect to remote address

## Member Data Documentation

ACE_Ping_Socket::ACE_ALLOC_HOOK_DECLARE

| Declare the dynamic allocation hooks. Reimplemented from ACE_ICMP_Socket.

int ACE_Ping_Socket::connected_socket_ `[private]`

char ACE_Ping_Socket::icmp_recv_buff_[PING_BUFFER_SIZE]`[private]`

char ACE_Ping_Socket::icmp_send_buff_[PING_BUFFER_SIZE]`[private]`

ACE_UINT16 ACE_Ping_Socket::sequence_number_ `[private]`

ACE_Time_Value const ACE_Ping_Socket::time_default_ `[static]`

The documentation for this class was generated from the following files:

- Ping_Socket.h
- Ping_Socket.cpp
- Ping_Socket.inl