关闭

网络监听函数listen()

标签: 服务器serversocket网络
619人阅读 评论(0) 收藏 举报
分类:
listen()函数 
  是换换内容得时候了。假如你不希望与远程的一个地址相连,或者说, 仅仅是将它踢开,那你就需要等待接入请求并且用各种方法处理它们。处 理过程分两步:首先,你听--listen(),然后,你接受--accept() (请看下面的 内容)。 
除了要一点解释外,系统调用 listen 也相当简单。 
int listen(int sockfd, int backlog);  
sockfd 是调用 socket() 返回的套接字文件描述符。backlog 是在进入 队列中允许的连接数目。什么意思呢? 进入的连接是在队列中一直等待直 到你接受 (accept() 请看下面的文章)连接。它们的数目限制于队列的允许。 大多数系统的允许数目是20,你也可以设置为5到10。 
和别的函数一样,在发生错误的时候返回-1,并设置全局错误变量 errno。 
你可能想象到了,在你调用 listen() 前你或者要调用 bind() 或者让内 核随便选择一个端口。如果你想侦听进入的连接,那么系统调用的顺序可 能是这样的:  
socket();  
  bind();  
listen();  
  /* accept() 应该在这 */  

因为它相当的明了,我将在这里不给出例子了。(在 accept() 那一章的 代码将更加完全。)真正麻烦的部分在 accept()。

一般backlog越大,服务器能够处理的瞬间连上来的客户端的数目越多。越能更好的处理突发大量连接


0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:55600次
    • 积分:804
    • 等级:
    • 排名:千里之外
    • 原创:13篇
    • 转载:70篇
    • 译文:0篇
    • 评论:1条
    文章分类
    最新评论