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