Man page - udp(7)

Packages contains this manual

Available languages:

en fr es pl ja ru ro zh_TW zh_CN

Manual

UDP

NAME (名 字 )
SYNOPSIS (總 覽 )
DESCRIPTION(描 述 )
ADDRESS FORMAT (地 址 格 式 )
ERROR HANDLING (錯 誤 處 理 )
ERRORS (錯 誤 )
VERSIONS(版 本 )
CREDITS(尾 註 )
SEE ALSO(另 見 )
[中 文 版 維 護 人 ]
[中 文 版 最 新 更 新 ]
《 中 國 linux論 壇 man手 冊 頁 翻 譯 計 劃 》 :


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 選 項 令 只 在 套 接 字 已 連 線 的 情 況 下 接 收 遠 端 錯 誤 ( EPROTO EMSGSIZE ) 除 外 . 最 好 是 修 復 程 式 碼 並 適 當 地 處 理 錯 誤 , 而 不 要 開 啟 該 選 項 . 本 地 產 生 的 錯 誤 總 是 傳 遞 .

當 打 開 了 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