设为首页 加入收藏

TOP

Beej’s Guide Network to Programming 系列连载12
2014-11-24 00:33:14 来源: 作者: 【 】 浏览:31
Tags:Beej Guide Network Programming 系列 连载
上一篇: http://www.2cto.com/kf/201112/115475.html


5.5. listen() ---如果有“人”,请叫我?
是换换内容得时候了。假如你不希望与远程的一个地址相连,或者说, 仅仅是将它踢开,那你就需要等待接入请求并且用各种方法处理它们。处理过程分两步:首先,监听--listen(),然后,你接受--accept()

函数原型:

int listen(intsockfd, int backlog);

sockfd 是调用socket() 返回的套接字文件描述符。backlog 是在进入队列中允许的连接数目。什么意思呢 进入的连接是在队列中一直等待直到你接受 (accept() 请看下面的文章)连接。它们的数目限制于队列的允许。 大多数系统的允许数目是20,你也可以设置为5到10。

和别的函数一样,在发生错误的时候返回-1,并设置全局错误变量 errno。

你可能想象到了,在你调用 listen() 前你或者要调用bind() 或者让内核随便选择一个端口。如果你想侦听进入的连接,那么系统调用的顺序可能是这样的:

getaddrinfo();

socket();

bind();

listen();

/* accept() goeshere */

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

摘自 xiaobin_HLJ80的专栏
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇windows与linux下的\r\n 下一篇Beej’s Guide Network to Progra..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: