Provided by: freebsd-manpages_12.2-1_all bug

NAME

       udp — Internet User Datagram Protocol

SYNOPSIS

       #include <sys/types.h>
       #include <sys/socket.h>
       #include <netinet/in.h>

       int
       socket(AF_INET, SOCK_DGRAM, 0);

DESCRIPTION

       UDP is a simple, unreliable datagram protocol which is used to support the SOCK_DGRAM abstraction for the
       Internet  protocol  family.  UDP sockets are connectionless, and are normally used with the sendto(2) and
       recvfrom(2) calls, though the connect(2) call may also be used to fix the destination for future  packets
       (in which case the recv(2) or read(2) and send(2) or write(2) system calls may be used).

       UDP  address formats are identical to those used by TCP.  In particular UDP provides a port identifier in
       addition to the normal Internet address format.  Note that the UDP port space is separate  from  the  TCP
       port space (i.e., a UDP port may not be “connected” to a TCP port).  In addition broadcast packets may be
       sent  (assuming  the  underlying  network  supports  this)  by using a reserved “broadcast address”; this
       address is network interface dependent.

       Options at the IP transport level may be used with UDP; see ip(4).  UDP_ENCAP socket option may  be  used
       at the IPPROTO_UDP level to encapsulate ESP packets in UDP.  Only one value is supported for this option:
       UDP_ENCAP_ESPINUDP from RFC 3948, defined in <netinet/udp.h>.

MIB VARIABLES

       The udp protocol implements a number of variables in the net.inet branch of the sysctl(3) MIB.

       UDPCTL_CHECKSUM    (udp.checksum) Enable udp checksums (enabled by default).

       UDPCTL_MAXDGRAM    (udp.maxdgram) Maximum outgoing UDP datagram size

       UDPCTL_RECVSPACE   (udp.recvspace) Maximum space for incoming UDP datagrams

       udp.log_in_vain    For  all  udp  datagrams,  to  ports  on  which  there is no socket listening, log the
                          connection attempt (disabled by default).

       udp.blackhole      When a datagram is received on a port where there  is  no  socket  listening,  do  not
                          return an ICMP port unreachable message.  (Disabled by default.  See blackhole(4).)

ERRORS

       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 destination address is specified, and the
                          socket has not been connected;

       [ENOBUFS]          when the system runs out of memory for an internal data structure;

       [EADDRINUSE]       when an attempt is made to create  a  socket  with  a  port  which  has  already  been
                          allocated;

       [EADDRNOTAVAIL]    when an attempt is made to create a socket with a network address for which no network
                          interface exists.

SEE ALSO

       getsockopt(2), recv(2), send(2), socket(2), blackhole(4), inet(4), intro(4), ip(4), udplite(4)

HISTORY

       The udp protocol appeared in 4.2BSD.

Debian                                          February 6, 2017                                          UDP(4)