2.11BSD/man/cat4/icmp.0
ICMP(4P) UNIX Programmer's Manual ICMP(4P)
NAME
icmp - Internet Control Message Protocol
SYNOPSIS
#include <sys/socket.h>
#include <netinet/in.h>
s = socket(AF_INET, SOCK_RAW, proto);
DESCRIPTION
ICMP is the error and control message protocol used by IP
and the Internet protocol family. It may be accessed
through a "raw socket" for network monitoring and diagnostic
functions. The _p_r_o_t_o parameter to the socket call to create
an ICMP socket is obtained from _g_e_t_p_r_o_t_o_b_y_n_a_m_e(3N). ICMP
sockets are connectionless, and are normally used with the
_s_e_n_d_t_o and _r_e_c_v_f_r_o_m calls, though the _c_o_n_n_e_c_t(2) call may
also be used to fix the destination for future packets (in
which case the _r_e_a_d(2) or _r_e_c_v(2) and _w_r_i_t_e(2) or _s_e_n_d(2)
system calls may be used).
Outgoing packets automatically have an IP header prepended
to them (based on the destination address). Incoming pack-
ets are received with the IP header and options intact.
DIAGNOSTICS
A socket operation may fail with one of the following errors
returned:
[EISCONN] when trying to establish a connection on a
socket which already has one, or when trying
to send a datagram with the destination
address specified and the socket is already
connected;
[ENOTCONN] when trying to send a datagram, but no desti-
nation address is specified, and the socket
hasn't been connected;
[ENOBUFS] when the system runs out of memory for an
internal data structure;
[EADDRNOTAVAIL]
when an attempt is made to create a socket
with a network address for which no network
interface exists.
SEE ALSO
send(2), recv(2), intro(4N), inet(4F), ip(4P)
Printed 11/26/99 May 16, 1986 1