LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1349|回复: 6

soket 函数 listen 最大等待连接数目如果设置得很大有没有意义?

[复制链接]
发表于 2009-8-6 15:03:58 | 显示全部楼层 |阅读模式
一般设置为5,这么小?为什么?

如果我设置为一个int型的数的最大数值,listen函数能否接受?比如2的32次方这么大,行不行?
发表于 2009-8-6 16:37:22 | 显示全部楼层
我想大概不行
可打开的文件描述符个数限制是包括打开的socket的数目的
回复 支持 反对

使用道具 举报

发表于 2009-8-6 20:24:04 | 显示全部楼层

最大值不是5吗?

最大值不是5吗?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-8-6 20:51:29 | 显示全部楼层
x11   

请教 ,文件描述符最多 能打开几个?
回复 支持 反对

使用道具 举报

发表于 2009-8-8 23:35:55 | 显示全部楼层
Post by 风之湍;2013547
x11   

请教 ,文件描述符最多 能打开几个?


for per process:
ulimit -n

for kernel:
cat /proc/sys/fs/file-max
回复 支持 反对

使用道具 举报

发表于 2009-8-12 11:36:29 | 显示全部楼层
呵呵,listen函数后面的侦听队列应该是可以设置最大128个,印象中。
不过这个和你要侦听超过128个socket_fd并不矛盾。
例如:
listen(socket_svr,5)
int cfd;
cfd=accept(socket_svr,*,*)//*代表相应结构体,具体可以man下
我们考虑网络中瞬间发生的事情,当一个客户端,连接过来的时候,
accetp返回前,此时,listen函数还可以侦听4个,但是当accept返回后,listen 又可以侦听5个了

所以只要我们每次都记住为客户端开启的文件句柄,就可以与服务器通讯了,
至于文件句柄数,是有限制的,可以通过ulimit -n,查询。侦听客户端,最大是不能超过这个数目的,好在这个数目,可以调整。(越大电脑越慢)
(我是这样理解的,不知道,对不对)
回复 支持 反对

使用道具 举报

发表于 2009-8-13 09:18:11 | 显示全部楼层
楼上说的很对。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表