Provided by: manpages-zh_1.6.3.6-1_all bug

NAME (名字)

       udp - IPv4 上面的 UDP 协议.

SYNOPSIS (总览)

       #include <sys/socket.h>
       #include <netinet/in.h>
       udp_socket = socket(PF_INET, SOCK_DGRAM, 0);

DESCRIPTION(描述)

       这是一个 RFC768 中的用户数据报协议的实现.  它实现无连接的, 不可靠的数据报信息包服务.  信息
       包可能在它们传输到达之前重新排序或者重复.  UDP 通过生成和检查校验和来俘获传输错误.

       当创建一个 UDP 套接字时, 它的本地和远程地址是不确定的.  可以使用带一个有效目的地址作为参数
       的 sendto(2) 或者 sendmsg(2) 立即发送数据报.如果套接字上调用了 connect(2) 时, 则设置默认的
       目的地址, 数据报可以使用 send(2) 或者 write(2) 发送而不需要指定目的地址.  也可以通过传递一
       个地址给  sendto(2) 或者 sendmsg(2) 来发送到其它目的地址.  为了接收信息包,套接字必须首先用
       bind(2) 绑定一个本地地址, 如果没有这么做, 套接字层在第一个用户接收请求时将自动分配一个本地
       端口.

       所有接收操作只返回一个信息包.   当信息包小于所传递的缓冲区时, 则只返回那些数据, 当信息包大
       于所传递的缓冲区时,则截断信息包并设置 MSG_TRUNC 标志.

       IP 选项可以使用描述于 ip(7) 中的套接字选项发送或接收.  只有打开了合适的 sysctl 时,  内核才
       处理它们(不过即使关闭了它们, 仍然会传递给用户).  参见 ip(7).

       如果设置了 MSG_DONTROUTE 标志,则发送时目的地址必须指向一个本地接口地址, 而且信息包只发到该
       接口.

       当 UDP 的总长超过接口 MTU(Maximum Transmission Unit 最大传输单元)时, UDP  会对信息包进行分
       段.  一个更为网络友好的可选方法是使用 path MTU discovery(路径MTU发现), 它描述于 ip(7) 中的
       IP_PMTU_DISCOVER 部分.

ADDRESS FORMAT (地址格式)

       UDP 使用 IPv4 的 sockaddr_in 地址格式,其描述于 ip(7) 中.

ERROR HANDLING (错误处理)

       所有重大错误都会以错误返回值的方式传递给用户,  即使套接字没有连接亦如此.这种处理方式有别于
       许多其它的  BSD 套接字实现方法, 除非套接字连接上, 否则那些方法不会传递任何错误, Linux 的处
       理方式遵循 RFC1122 的要求.

       为了与以前的代码兼容,可以设置 SO_BSDCOMPAT SOL_SOCKET 选项令只在套接字已连接的情况下接收远
       程错误( EPROTOEMSGSIZE) 除外.  最好是修复代码并适当地处理错误, 而不要打开该选项.  本地
       产生的错误总是传递.

       当打开了 IP_RECVERR 选项时, 所有错误可以存储在套接字错误队列中, 并可以通过带  MSG_ERRQUEUE
       标识设置的 recvmsg(2) 来接收.

ERRORS (错误)

       所有列在 socket(7) 或 ip(7) 中的错误都可以在一个 UDP 套接字上收发时收到.

       ECONNREFUSED 没有与目的地址相关联的接收者.  这可能由于在前面一个通过该套接字发送的信息包而
       引发.

VERSIONS(版本)

       IP_RECVERR 是 Linux 2.2 中的新功能.

CREDITS(尾注)

       本手册页的作者为 Andi Kleen.

SEE ALSO(另见)

       ip(7), socket(7), raw(7).

       RFC768: 用户数据报协议.
       RFC1122: 主机需求
       RFC1191: 描述 path MTU discovery (路径MTU查找).

[中文版维护人]

       riser <boomer@ccidnet.com>

[中文版最新更新]

       2001/07/19

《中国linux论坛man手册页翻译计划》:

       http://cmpp.linuxforum.net

       本页面中文版由中文 man 手册页计划提供。
       中文 man 手册页计划:https://github.com/man-pages-zh/manpages-zh