listen(c語言函式)

listen(c語言函式)

listen在套接字函式中表示讓一個套接字處於監聽到來的連線請求的狀態

基本介紹

  • 中文名:listen
  • 類別:C語言函式
  • 頭檔案:#include <sys/types.h>
  • 函式聲明:int listen
頭檔案,linux:,windows,函式聲明,linux,windows,功能,參數,返回值,說明,例子,

頭檔案

linux:

#include <sys/types.h>
#include <sys/socket.h>

windows

#include <WinSock2.h>
#include <WinSock.h>

函式聲明

linux

int listen(int fd, int backlog);

windows

int listen(SOCKET sockfd, int backlog);

功能

listen函式使用主動連線套接字變為被連線套接口,使得一個進程可以接受其它進程的請求,從而成為一個伺服器進程。在TCP伺服器編程中listen函式把進程變為一個伺服器,並指定相應的套接字變為被動連線。
listen函式一般在調用bind之後-調用accept之前調用。

參數

sockfd 一個已綁定未被連線的套接字描述符
backlog 連線請求佇列(queue of pending connections)
的最大長度(一般由2到4)。用SOMAXCONN則由
系統確定。

返回值

無錯誤,返回0,
否則,返回SOCKET ERROR,windows上可以調用函式WSAGetLastError取得錯誤代碼,在Linux可使用errno。

說明

(1) 執行listen 之後套接字進入被動模式。
(2) 佇列滿了以後,將拒絕新的連線請求。客戶端將出現連線D 錯誤WSAECONNREFUSED。
(3) 在正在listen的套接字上執行listen不起作用。

例子

if(listen(sock,5) == -1) {    printf("error listening on socket\n");}

相關詞條

熱門詞條

聯絡我們