listen(fd, 5) 这个5是啥意思

fcuklife 2009-12-16 02:37:09
listen(fd, 5) 这个5是啥意思
...全文
665 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
yesor 2009-12-17
  • 打赏
  • 举报
回复
好的
  • 打赏
  • 举报
回复
cj2602170 2009-12-17
  • 打赏
  • 举报
回复
BSD相关的..就算大于5..一样会是5...

这个的意思是你未ACCEPT的队列值...
也就是如果服务端的未ACCEPT连接超过这个数,新连进来的客户端就会报connect refuse

这世界有必要存在那么多的未ACCEPT的连接吗?
不管大小,下次直接写100,
如果是BSD相关的,自已会默认5..
其它的.我没有看过实现,不知道...
sax小bin 2009-12-17
  • 打赏
  • 举报
回复
只能有5个客服端同时链接
fcuklife 2009-12-17
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 ydy4618 的回复:]
引用 2 楼 sduxiaoxiang 的回复:
当有多个客户端程序和服务端相连时,表示可以接受的排队长度

正确,队列满时就不再接受连接
[/Quote]

哪不是只可以起5个客户端??
fenglingxiaowu 2009-12-17
  • 打赏
  • 举报
回复
UP
linmei19840721 2009-12-17
  • 打赏
  • 举报
回复
知道了
ydy4618 2009-12-16
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 guzhijie1981 的回复:]
最多5个连接;我记得没有错的话
[/Quote]
错误
ydy4618 2009-12-16
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 sduxiaoxiang 的回复:]
当有多个客户端程序和服务端相连时,表示可以接受的排队长度
[/Quote]
正确,队列满时就不再接受连接
WeinJones 2009-12-16
  • 打赏
  • 举报
回复
.....MSDN.....
lzy0001sl 2009-12-16
  • 打赏
  • 举报
回复
在windows下,你写个2.虽然说意思上是最多连接2个,但是真实的情况是,大于2个也可以。
do_fork 2009-12-16
  • 打赏
  • 举报
回复
不同UNIX变体,对这个参数的解释是不同的,
即使只是Linux一种,2.2以后和2.2以前行为是不同的。

2.2内核以后,是连接完全建立后,等待accept的最大容量,
不再是未完成连接请求队列的大小了
独孤过儿 2009-12-16
  • 打赏
  • 举报
回复
listen的第二个参数是个系统依赖性很强的参数,在早期的UNIX,在BSD,在Solaris,在linux里面意义都

不同,具体的区别可以去看《UNIX网络编程》第一卷,那里面详细介绍了区别
z569362161 2009-12-16
  • 打赏
  • 举报
回复
第2个应该是请求队列的最大长度吧记得是。
当服务器接收到客户机的SYN数据的时候,就会在请求队列中建立一个新条目,然后就是。。。。
Wind_Runner 2009-12-16
  • 打赏
  • 举报
回复
nod

是接收缓冲队列的长度
do_fork 2009-12-16
  • 打赏
  • 举报
回复
The backlog argument defines the maximum length to which the queue
of pending connections for sockfd may grow.

The behavior of the backlog argument on TCP sockets changed with Linux 2.2.
Now it specifies the queue length for completely established sockets waiting
to be accepted, instead of the number of incomplete connection requests.

The maximum length of the queue for incomplete sockets can be set using
/proc/sys/net/ipv4/tcp_max_syn_backlog. When syncookies are enabled
there is no logical maximum length and this setting is ignored.

See tcp(7) for more information.

If the backlog argument is greater than the value in /proc/sys/net/core/somaxconn, then it is silently truncated to that
value; the default value in this file is 128. In kernels before 2.4.25, this limit was a hard coded value, SOMAXCONN,
with the value 128.
sduxiaoxiang 2009-12-16
  • 打赏
  • 举报
回复
当有多个客户端程序和服务端相连时,表示可以接受的排队长度
guzhijie1981 2009-12-16
  • 打赏
  • 举报
回复
最多5个连接;我记得没有错的话
Node.js 是一个开源与跨平台的 JavaScript 运行时环境。 它是一个可用于几乎任何项目的流行工具!   Node.js 在浏览器外运行 V8 JavaScript 引擎(Google Chrome 的内核)。 这使 Node.js 表现得非常出色。   Node.js 应用程序运行于单个进程中,无需为每个请求创建新的线程。 Node.js 在其标准库中提供了一组异步的 I/O 原生功能(用以防止 JavaScript 代码被阻塞),并且 Node.js 中的库通常是使用非阻塞的范式编写的(从而使阻塞行为成为例外而不是规范)。   当 Node.js 执行 I/O 操作时(例如从网络读取、访问数据库或文件系统),Node.js 会在响应返回时恢复操作,而不是阻塞线程并浪费 CPU 循环等待。   这使 Node.js 可以在一台服务器上处理数千个并发连接,而无需引入管理线程并发的负担(这可能是重大 bug 的来源)。   Node.js 具有独特的优势,因为为浏览器编写 JavaScript 的数百万前端开发者现在除了客户端代码之外还可以编写服务器端代码,而无需学习完全不同的语言。   在 Node.js 中,可以毫无问题地使用新的 ECMAScript 标准,因为不必等待所有用户更新其浏览器,你可以通过更改 Node.js 版本来决定要使用的 ECMAScript 版本,并且还可以通过运行带有标志的 Node.js 来启用特定的实验中的特性。   大量的库 npm 的简单结构有助于 Node.js 生态系统的激增,现在 npm 仓库托管了超过 1,000,000 个可以自由使用的开源库包。   Node.js 应用程序的示例 Node.js zui常见的 Hello World 示例是 Web 服务器:   const http = require('http')const hostname = '127.0.0.1'const port = 3000const server = http.createServer((req, res) => )server.listen(port, hostname, () => ) 此代码首先引入了 Node.js http 模块。   Node.js 具有出色的标准库,包括对网络的一.流支持。   http 的 createServer() 方法会创建新的 HTTP 服务器并返回它。   服务器被设置为监听指定的端口和主机名。 当服务器就绪后,回调函数会被调用,在此示例中会通知我们服务器正在运行。   每当接收到新的请求时,request 事件会被调用,并提供两个对象:一个请求(http.IncomingMessage 对象)和一个响应(http.ServerResponse 对象)。   这两个对象对于处理 HTTP 调用至关重要。   第一个对象提供了请求的详细信息。 在这个简单的示例中没有使用它,但是你可以访问请求头和请求数据。   第二个对象用于返回数据给调用方。   在此示例中:   res.statusCode = 200 设置 statusCode 属性为 200,以表明响应成功。   设置 Content-Type 响应头:   res.setHeader('Content-Type', 'text/plain') 关闭响应,添加内容作为 end() 的参数:   res.end('你好世界n') Node.js 框架和工具 Node.js 是一个底层的平台。 为了使开发者做事变得容易又来劲,社区在 Node.js 上构建了数千个库。   久而久之,其中许多已成为受欢迎的选择。 以下是一些值得学习的清单:   AdonisJs: 一个全栈框架,高度专注于开发者的效率、稳定和信任。 Adonis 是zui快的 Node.js Web 框架之一。   Express: 提供了创建 Web 服务器的zui简单但功能zui强大的方法之一。 它的极简主义方法,专注于服务器的核心功能,是其成功的关键。   Fastify: 一个 Web 框架,高度专注于提供zui佳的开发者体验(以zui少的开销和强大的插件架构)。 Fastify 是zui快的 Node.js Web 框架之一。   Gatsby: 一个基于 React、由 GraphQL 驱动的静态网站生成器,具有非常丰富的插件和启动器生态系统。   hapi: 一个富框架,用于构建应用程序和服务,使开发者可以专注于编写可重用的应用程序逻辑,而不必花费时间来搭建基础架构。   koa: 由 Express 背后的同一个团队构建,旨在变得更简单更轻巧。 新项目的诞生是为了满足创建不兼容的更改而又不破坏现有社区。   Loopback.io: 使构建需要复杂集成的现代应用程序变得容易。   Meteor: 一个强大的全栈框架,以同构的方式使用 JavaScript 构建应用(在客户端和服务器上共享代码)。 曾经是提供所有功能的现成工具,现在可以与前端库 React,Vue 和 Angular 集成。 也可以用于创建移动应用。   Micro: 提供了一个非常轻量级的服务器,用于创建异步的 HTTP 微服务。   NestJS: 一个基于 TypeScript 的渐进式 Node.js 框架,用于构建企业级的高效、可靠和可扩展的服务器端应用程序。   Next.js: 一个 React 框架,可为你提供生产所需的所有功能的zui佳开发者体验:混合静态和服务器渲染、TypeScript 支持、智能捆绑、路由预取等。   Nx: 使用 NestJS、Express、React、Angular 等进行全栈开发的工具包! Nx 有助于将开发工作从一个团队(构建一个应用程序)扩展到多个团队(在多个应用程序上进行协作)!   Sapper: Sapper 是一个用于构建各种规模的 Web 应用程序的框架,具有出色的开发体验和灵活的基于文件系统的路由。还提供 S.S.R等!   Socket.io: 一个实时通信引擎,用于构建网络应用程序。   Strapi: Strapi 是一个灵活的开源 Headless CMS,可使开发者可以自由选择自己喜欢的工具和框架,同时还允许编辑人员轻松地管理和分发其内容。 通过使管理面板和 API 可以通过插件系统进行扩展,Strapi 使全球zui大的公司能够加速内容交付,同时构建优美的数字体验。

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧