diff options
| author | Michael Kerrisk <mtk.manpages@gmail.com> | 2008-08-08 16:28:06 +0000 |
|---|---|---|
| committer | Michael Kerrisk <mtk.manpages@gmail.com> | 2008-08-08 16:28:06 +0000 |
| commit | 10874173dba2edf045eebd9e85945970182dbaf6 (patch) | |
| tree | ec42e47e1a8fc25ca4e816fd99a570404f3aa5c5 /man7/udp.7 | |
| parent | ea6ac50ed39e1c963454c837065ef7beeaccb0b8 (diff) | |
| download | man-pages-10874173dba2edf045eebd9e85945970182dbaf6.tar.gz | |
s/PF_/AF_/ for socket family conistants. Reasons: the AF_ and
PF_ constants have always had the same values; there never has
been a protocol family that had more than one address family,
and POSIX.1-2001 only specifies the AF_* constants.
Diffstat (limited to 'man7/udp.7')
| -rw-r--r-- | man7/udp.7 | 201 |
1 files changed, 8 insertions, 193 deletions
diff --git a/man7/udp.7 b/man7/udp.7 index 243d313467..a3d4e989a5 100644 --- a/man7/udp.7 +++ b/man7/udp.7 @@ -1,193 +1,8 @@ -.\" This man page is Copyright (C) 1999 Andi Kleen <ak@muc.de>. -.\" Permission is granted to distribute possibly modified copies -.\" of this page provided the header is included verbatim, -.\" and in case of nontrivial modification author and date -.\" of the modification is added to the header. -.\" $Id: udp.7,v 1.7 2000/01/22 01:55:05 freitag Exp $ -.\" -.TH UDP 7 1998-10-02 "Linux" "Linux Programmer's Manual" -.SH NAME -udp \- User Datagram Protocol for IPv4 -.SH SYNOPSIS -.B #include <sys/socket.h> -.br -.B #include <netinet/in.h> -.sp -.B udp_socket = socket(PF_INET, SOCK_DGRAM, 0); -.SH DESCRIPTION -This is an implementation of the User Datagram Protocol -described in RFC\ 768. -It implements a connectionless, unreliable datagram packet service. -Packets may be reordered or duplicated before they arrive. -UDP generates and checks checksums to catch transmission errors. - -When a UDP socket is created, -its local and remote addresses are unspecified. -Datagrams can be sent immediately using -.BR sendto (2) -or -.BR sendmsg (2) -with a valid destination address as an argument. -When -.BR connect (2) -is called on the socket the default destination address is set and -datagrams can now be sent using -.BR send (2) -or -.BR write (2) -without specifying a destination address. -It is still possible to send to other destinations by passing an -address to -.BR sendto (2) -or -.BR sendmsg (2). -In order to receive packets the socket can be bound to a local -address first by using -.BR bind (2). -Otherwise the socket layer will automatically assign -a free local port out of the range defined by -.I net.ipv4.ip_local_port_range -and bind the socket to -.BR INADDR_ANY . - -All receive operations return only one packet. -When the packet is smaller than the passed buffer only that much -data is returned, when it is bigger the packet is truncated and the -.B MSG_TRUNC -flag is set. -.B MSG_WAITALL -is not supported. - -IP options may be sent or received using the socket options described in -.BR ip (7). -They are only processed by the kernel when the appropriate sysctl -is enabled (but still passed to the user even when it is turned off). -See -.BR ip (7). - -When the -.B MSG_DONTROUTE -flag is set on sending the destination address must refer to a local -interface address and the packet is only sent to that interface. - -By default Linux UDP does path MTU (Maximum Transmission Unit) discovery. -This means the kernel -will keep track of the MTU to a specific target IP address and return -.B EMSGSIZE -when a UDP packet write exceeds it. -When this happens the application should decrease the packet size. -Path MTU discovery can be also turned off using the -.B IP_MTU_DISCOVER -socket option or the -.I ip_no_pmtu_disc -sysctl, see -.BR ip (7) -for details. -When turned off UDP will fragment outgoing UDP packets -that exceed the interface MTU. -However disabling it is not recommended -for performance and reliability reasons. -.SS "Address Format" -UDP uses the IPv4 -.I sockaddr_in -address format described in -.BR ip (7). -.SS "Error Handling" -All fatal errors will be passed to the user as an error return even -when the socket is not connected. -This includes asynchronous errors -received from the network. -You may get an error for an earlier packet -that was sent on the same socket. -This behavior differs from many other BSD socket implementations -which don't pass any errors unless the socket is connected. -Linux's behavior is mandated by -.BR RFC\ 1122 . - -For compatibility with legacy code in Linux 2.0 and 2.2 -it was possible to set the -.B SO_BSDCOMPAT -.B SOL_SOCKET -option to receive remote errors only when the socket has been -connected (except for -.B EPROTO -and -.BR EMSGSIZE ). -Locally generated errors are always passed. -Support for this socket option was removed in later kernels; see -.BR socket (7) -for further information. - -When the -.B IP_RECVERR -option is enabled all errors are stored in the socket error queue -and can be received by -.BR recvmsg (2) -with the -.B MSG_ERRQUEUE -flag set. -.SS "Socket Options" -To set or get a UDP socket option, call -.BR getsockopt (2) -to read or -.BR setsockopt (2) -to write the option with the option level argument set to -.BR IPPROTO_UDP . -.TP -.BR UDP_CORK " (since Linux 2.5.44)" -If this option is enabled, then all data output on this socket -is accumulated into a single datagram that is transmitted when -the option is disabled. -This option should not be used in code intended to be -portable. -.\" FIXME document UDP_ENCAP (new in kernel 2.5.67) -.SS Ioctls -These ioctls can be accessed using -.BR ioctl (2). -The correct syntax is: -.PP -.RS -.nf -.BI int " value"; -.IB error " = ioctl(" udp_socket ", " ioctl_type ", &" value ");" -.fi -.RE -.TP -.BR FIONREAD " (" SIOCINQ ) -Gets a pointer to an integer as argument. -Returns the size of the next pending datagram in the integer in bytes, -or 0 when no datagram is pending. -.TP -.BR TIOCOUTQ " (" SIOCOUTQ ) -Returns the number of data bytes in the local send queue. -Only supported with Linux 2.4 and above. -.PP -In addition all ioctls documented in -.BR ip (7) -and -.BR socket (7) -are supported. -.SH ERRORS -All errors documented for -.BR socket (7) -or -.BR ip (7) -may be returned by a send or receive on a UDP socket. - -.B ECONNREFUSED -No receiver was associated with the destination address. -This might be caused by a previous packet sent over the socket. -.SH VERSIONS -IP_RECVERR is a new feature in Linux 2.2. -.\" .SH CREDITS -.\" This man page was written by Andi Kleen. -.SH "SEE ALSO" -.BR ip (7), -.BR raw (7), -.BR socket (7) - -RFC\ 768 for the User Datagram Protocol. -.br -RFC\ 1122 for the host requirements. -.br -RFC\ 1191 for a description of path MTU discovery. +.TH UDP 7 2008-08-07 "Linux" "Linux Programmer's Manual" +.TH UDP 7 2008-08-07 "Linux" "Linux Programmer's Manual" +.TH UDP 7 2008-08-07 "Linux" "Linux Programmer's Manual" +.TH UDP 7 2008-08-07 "Linux" "Linux Programmer's Manual" +.TH UDP 7 2008-08-07 "Linux" "Linux Programmer's Manual" +.TH UDP 7 2008-08-07 "Linux" "Linux Programmer's Manual" +.TH UDP 7 2008-08-07 "Linux" "Linux Programmer's Manual" +.TH UDP 7 2008-08-07 "Linux" "Linux Programmer's Manual" |
