Manpages

NAME 名 稱

listen - listen for connections on a socket 在 一 個 套 接 字 上 傾 聽 連 接

SYNOPSIS 概 述

#include <sys/socket.h>

int listen(int s, int backlog);

DESCRIPTION 描 述

在 接 收 連 接 之 前 ,首 先 要 使 用 socket(2) 創 建 一 個 套 接 字 ,然 後 調 用 listen 使 其 能 夠 自 動 接 收 到 來 的 連 接 並 且 爲 連 接 隊 列 指 定 一 個 長 度 限 制 . 之 後 就 可 以 使 用 accept(2) 接 收 連 接 . listen 調 用 僅 適 用 於 SOCK_STREAM 或 者 SOCK_SEQPACKET 類 型 的 套 接 字 . 參 數 backlog 指 定 未 完 成 連 接 隊 列 的 最 大 長 度 .如 果 一 個 連 接 請 求 到 達 時 未 完 成 連 接 隊 列 已 滿 ,那 麼 客 戶 端 將 接 收 到 錯 誤 ECONNREFUSED. 或 者 ,如 果 下 層 協 議 支 持 重 發 ,那 麼 這 個 連 接 請 求 將 被 忽 略 ,這 樣 客 戶 端 在 重 試 的 時 候 就 有 成 功 的 機 會 .

NOTES 注 意

在 TCP套 接 字 中 backlog 的 含 義 在 Linux 2.2中 已 經 改 變 . 它 指 定 了 已 經 完 成 連 接 正 等 待 應 用 程 序 接 收 的 套 接 字 隊 列 的 長 度 ,而 不 是 未 完 成 連 接 的 數 目 .未 完 成 連 接 套 接 字 隊 列 的 最 大 長 度 可 以 使 用 tcp_max_syn_backlog sysctl設 置 當 打 開 syncookies時 不 存 在 邏 輯 上 的 最 大 長 度 ,此 設 置 將 被 忽 略 .參 見 tcp(7) 以 獲 取 更 多 信 息 .

RETURN VALUE 返 回 值

函 數 執 行 成 功 時 返 回 0.錯 誤 時 返 回 -1,並 置 相 應 錯 誤 代 碼 . errno

ERRORS 錯 誤

EBADF 參 數

s 不 是 合 法 的 描 述 符 .

ENOTSOCK 參 數 s 不 是 一 個 套 接 字 .
EOPNOTSUPP
套 接 字 類 型 不 支 持 listen 操 作 .

CONFORMING TO 兼 容 於

Single Unix, 4.4BSD, POSIX 1003.1g. listen 函 數 調 用 最 初 出 現 於 4.2BSD.

BUGS 勘 誤

如 果 套 接 字 類 型 是 AF_INET, 並 且 參 數 backlog 大 於 常 量 SOMAXCONN (Linux 2.0&2.2中 是 128),它 將 被 自 動 截 斷 爲 SOMAXCONN 的 值 . 有 的 BSD系 統 (以 及 一 些 BSD擴 展 )將 backlog值 限 制 爲 5.

SEE ALSO 參 見

accept(2), connect(2), socket(2)

[中 文 版 維 護 人 ]

byeyear <love_my_love [AT] 263.net >

[中 文 版 最 新 更 新 ]

2002.01.27

《 中 國 linux論 壇 man手 冊 頁 翻 譯 計 劃 》 :

http://cmpp.linuxforum.net

本 頁 面 中 文 版 由 中 文 man 手 冊 頁 計 劃 提 供 。 中 文 man 手 冊 頁 計 劃 : https://github.com/man-pages-zh/manpages-zh