listen()

创建一个套接口并监听申请的连接.

#include <winsock.h>

int PASCAL FAR listen( SOCKET s, int backlog);

S:用于标识一个已捆绑未连接套接口的描述字。

backlog:等待连接队列的最大长度。

中文名
listen()
简    述
创建一个套接口并监听申请的连接
注    释
为了接受连接
兼容性
后备日志当前被限制为5

目录

  1. 注释
  2. 兼容性
  3. 返回值
  4. 错误代码

注释编辑

为了接受连接,先用socket()创建一个套接口的描述字,然后用listen()创建套接口并为申请进入的连接建立一个后备日志,然后便可用accept()接受连接了。listen()仅适用于支持连接的套接口,如SOCK_STREAM类型的。套接口s处于一种“变动”模式,申请进入的连接请求被确认,并排队等待被接受。这个函数特别适用于同时有多个连接请求的服务器;如果当一个连接请求到来时,队列已满,那么客户将收到一个WSAECONNREFUSED错误。

当没有可用的描述字时,listen()函数仍试图正常地工作。它仍接受请求直至队列变空。当有可用描述字时,后续的一次listen()或accept()调用会将队列按照当前或最近的“后备日志”重新填充,如有可能的话,将恢复监听申请进入的连接请求。

兼容性编辑

后备日志当前被(默认地)限制为5。如同4.3 BSD Unix中的一样,小于1或大于5的数都会被舍入最近的有效值。

返回值编辑

如无错误发生,listen()返回0。否则的话,返回SOCKET_ERROR错误,应用程序可通过WSAGetLastError()获取相应错误代码

错误代码编辑

WSANOTINITIALISED:在使用此API之前应首先成功地调用WSAStartup()。

WSAENETDOWN:WINDOWS套接口实现检测到网络子系统失效。

WSAEADDRINUSE:试图用listen()去监听一个正在使用中的地址。

WSAEINPROGRESS:一个阻塞的WINDOWS套接口调用正在运行中。

WSAEINVAL:该套接口未用bind()进行捆绑,或已被连接。

WSAEISCONN:套接口已被连接。

WSAEMFILE:无可用文件描述字。

WSAENOBUFS:无可用缓冲区空间。

WSAENOTSOCK:描述字不是一个套接口

WSAEOPNOTSUPP:该套接口不正常listen()调用。

时间: 2024-10-13 15:21:54

listen()的相关文章

app.listen(3000)与app是不一样的

前者是server代码如下 Server { domain: null, _events: { request: { [Function] domain: undefined, _events: [Object], _maxListeners: undefined, setMaxListeners: [Function: setMaxListeners], getMaxListeners: [Function: getMaxListeners], emit: [Function: emit],

lwip socket探秘之listen

一个基本的socket建立顺序是 Server端: socket() bind() listen() accept() recv() Client端: socket() connect() send() 本文着重介绍Server端的listen()过程. 用户使用socket,调用listen()时,实际调用的是lwip里的lwip_listen().代码如下 1 /** 2 * Set a socket into listen mode. 3 * The socket may not have

TCP listen() Backlog

The backlog has an effect on the maximum rate at which a server can accept new TCP connections on a socket. The rate is a function of both the backlog value and the time that connections stay on the queue of partially open connections. When a TCP con

网络连接返回getsockopt: connection refused错误原因 及 listen

客户端访问的ip写错或者服务端的listen ip写错 listen(":8080") ==  listen("0.0.0.0:8080") 可以用127.0.0.1:8080访问,也可以用网卡ip:8080访问 listen("127.0.0.1:8080")只能通过127.0.0.1:8080访问,目前所知一般用于代理转发到127.0.0.1:8080,如nginx的proxy_pass

将 QQ 音乐、网易云音乐和虾米音乐资源「整合」一起的Chrome 扩展Listen 1

原文地址:http://whosmall.com/?post=418 本文标签: Chrome扩展 Chrome浏览器 Chrome扩展Listen1 音乐资源整合 Listen1安装方法 在 Chrome 上安装了这款名为 Listen 1 的插件,妈妈可是再也不用担心你找不到想听的歌了.它将 QQ 音乐.网易云音乐以及虾米音乐的音乐资源「整合」在了一起,你只需要输入音乐关键词,就可以方便地三大曲库中跳转搜索. 安装方法 Listen 1 的安装方法与一般的 Chrome Extension

Not configured to listen on any interfaces!

dhcp错误,日志如下 an  2 02:31:33 lylinux dhcpd: No subnet declaration for eth0 (192.168.88.128). Jan  2 02:31:33 lylinux dhcpd: ** Ignoring requests on eth0.  If this is not what Jan  2 02:31:33 lylinux dhcpd:    you want, please write a subnet declaration

socket、listen 等函数的打电话隐喻

如果用电话来隐喻 TCP 的连接过程中用到的函数, 那么:1. socket 函数意味着有电话可用:2. bind 告诉其他用户自己的号码, 以便其他用于打给它:3. listen 是电话的响铃, 当电话来的时候会通知你:4. connect 是主动打别人的电话,前提是你知道号码:5. accept 返回一个新的连接套接字, 用于并行的操作.

PostgreSQL添加新服务器连接时,报错“Server doesn&#39;t listen ”,已解决。

PostgreSQL添加新的服务器连接时,报错: 解决方法: 第一步:修改配置文件中连接的服务器列表,添加服务器IP地址(图pg002.png) 配置文件地址:数据库右击属性,打开数据库的安装路径在data文件中找到配置文件pg_hba.conf. 如:D:\Program Files\PostgreSQL\9.4\data\pg_hba.conf 注:只要修改IP路径就可以了,‘/’后面的数字都为32. 第二步:修改配置文件后,启动服务器的服务: 启动服务完成,连接服务器,新服务器就可以正常的

CENTOS 7下failed to listen on TCP port 11211: Address already in use

最近在centos 7下面安装openstack进行测试. 安装到memcached这一步骤时启动服务后查看服务状态报错 系统内核版本: [[email protected] ~]# uname -a Linux openstack 3.10.0-514.16.1.el7.x86_64 #1 SMP Wed Apr 12 15:04:24 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux 启动memcached服务并查看状态 [[email protected] s

简单的listen+fork accept服务器实现

前段时间在分析nginx的IO模型的时候,知道nginx采用的是一进程监听+多进程accept的模式,也就是主进程先创建socket并bind指定端口listen之后,再fork出若干个子进程,由子进程去accept连接请求. 这段时间将其用代码实现并验证了一遍,监听端口后对接受到的请求,按照http协议返回进程id,算是一个极其简单的web服务器吧,后续对http协议的内容了解深入之后,看看再怎么对其扩展下. #include <stdio.h> #include <stdlib.h&