当前位置:  技术问答>linux和unix

请教:UNIX/Linux 的socket 编程,listen() 的作用,以及与accept() 之间的联系?(高手进)

    来源: 互联网  发布时间:2017-04-23

    本文导语:  listen()  函数是服务器端监听客户端的最大连接数的。 但是为什么使用accept() 函数可以连接超过listen() 监听的上限呢? 比如我用listen(sockfd, 3); 来监听一个服务器的连接。 可是用accept(); 连接客户端,当超过3个的...

listen()  函数是服务器端监听客户端的最大连接数的。
但是为什么使用accept() 函数可以连接超过listen() 监听的上限呢?

比如我用listen(sockfd, 3); 来监听一个服务器的连接。
可是用accept(); 连接客户端,当超过3个的时候accept() 函数并没返回出错,而正常返回一个文件描述符,这是什么情况啊?这样子来看的话岂不是listen(sockfd, 3);  这个监听函数没起作用了。那还要他干什么呢?

|
首先,listen的那个参数不是最大连接数,而是未完成连接队列和已完成连接队列的大小(不同实现中三者关系有可能不同,但是该参数一定是表示的这两个队列的大小)。
而最大连接数怎是另外的概念。
推荐看下UNIX网络编程,里面说的很详细了


|
同意一楼所说:设置的3是连接队列中的可用数。

|
可以认为是缓存队列吧, 比如说这个队列大小是3, 连着来了3个连接, 接下来会一个个accept处理掉, 客户端那也不会出现连接错误
如果队列里已经有3个了, 这时候又一个客户端来连接了, 那它直接就会收到连接错误, 服务器端直接拒绝了.

所以连接一点一点慢慢过来, 多少个都没问题的, 别一下来太多, 给队列弄冒了就行.

|
这有个原来的帖子,好好看一下

http://bbs.csdn.net/topics/80366037

    
 
 

您可能感兴趣的文章:

  • 请教一段shell语句的作用
  • 请教:system.out.println("a="+a),a是int类型的,那个+号到底起什么作用呢?
  • 各位老大,可以提供一个EJB(BMP)的例子吗? 同时请教PK类的作用?(给例子就有分)
  • linux下ulimit命令的具体作用,不是很明白,请教一下
  • 请教apt-get install x-window-system-core gnome-core synaptic的"synaptic"有什么作用
  • 请教:linux 2.6内核汇编中的.size起什么作用?
  • 请教3个问题:1.setleds设置numlock 2./dev/null写法的作用 3.关于path打通
  • 请教:整合apache/tomcat时设置JAVA_HOME/TOMCAT_HOME环境变量起什么作用?没有用到啊?
  • 请教,关于JAVA中变量的作用域的问题!
  • 请教:有了JRUN了,为什么还要装个APACHE,APACHE这个软件起什么作用的呢?
  • 【请教】libc.so的具体作用
  • 真正请教:Serializable接口有哪些主要作用,为什么它与Socket类可实现邮件发送?在概念或原理上是如何实现的呢?
  • 请教一下这几个qmail函数的作用
  • 请教gnome和kde之间的转换问题!
  • 请教:不同版本的linux kernel之间的差别
  • 请教:如何在两个javaBean之间传送变量
  • 请教各位:UserCPU, SystemCPU, ClockTime之间到底有什么区别?
  • 请教:两服务器之间的HTTP请求(非RMI实现)
  • 基础问题,刚学的!请教,两个日期格式变量,我要求两个日期之间的天数,怎么求?
  • 请教:某产品针对不同发行版之间的动态库是否通用?
  • 请教!两模块之间如何互相调用
  • 请教大虾们:在shell脚本中如何用expr连续进行多个变量之间的计算
  • 请教子线程之间通信的问题
  • 请教高手一个简单问题:给定一个文件名,如何去查找该文件正在被几个程序使用,并怎么样才可以切断这个文件与正在打开该文件的程序之间的
  • 高分请教,applet和javabean之间如何通信?
  • shell和c之间的变量传递问题,请教!
  • GTK编程~我在hpanel里加了一个4*1table~里面放了四个button~怎么设置可以使四个button之间有一定的距离~设置table 的边框么?请教下怎么让app的界面固定~不能最大化
  • JSP页面之间如何进行对象序列化传递???请教代码写法.I am online now。
  • 请教在linux C中怎样把ip字符串和整型数字之间的转换问题
  • 请教一个关于文件大小和block之间对应的问题
  • 表单在页面之间传地数据时,发现中文都变成了“???”,请教
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 请教,请教,这个问题是为什么????
  • 请教本地硬盘安装问题请教本地硬盘安装问题
  • ■请教■请教redhat最基本的问题!
  • 请教两个redhat9问题 iis7站长之家
  • 高分请教,各位大侠,请教一个问题,理论高手请进??谢谢
  • 请教Linux下pgadmin3-1.0.2的编译和安装!!高分请教!
  • 各位大虾,请教装了REDHAT9操作系统后,启动时无法引导到LINUX,请教该如何解决啊
  • 请教,请教,,,一定要看!!一定要看!!
  • 请教高手,小弟打印width=1500,height=600(A3纸)的Applet,在预览中是该区域是黑的,打印出来也是黑的,请教高手解决一下
  • :请教高手,小弟打印width=1500,height=600(A3纸)的Applet,在预览中是该区域是黑的,打印出来也是黑的,请教高手解决一下
  • 请教象我这样的硬盘应如何安装Linux,我昨天试装了,但有问题。(老问题了,也看了前面的帖子,但还是来请教,请多指教)
  • 请教这种循环的执行过程
  • 请教两个redhat9问题
  • 请教如何在指定目录下查找包含指定文字的文件
  • 请教局域网中如何通过ip地址得到主机名
  • 请教kdevelop的问题
  • 请教linux 下的adsl拨号问题.
  • 请教,如何用虚拟订机安装liux
  • 【请教】LINUX 下SNMP的MIB开发
  • 请教一个opengl的问题


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,