Beej’s Guide Network to Programming 系列连载12
来源:互联网 发布:金缕玉衣知乎 编辑:程序博客网 时间:2024/05/01 10:10
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()。
- Beej’s Guide Network to Programming 系列连载12
- Beej’s Guide Network to Programming 系列连载01
- Beej’s Guide Network to Programming 系列连载02
- Beej’s Guide Network to Programming 系列连载03
- Beej’s Guide Network to Programming 系列连载04
- Beej’s Guide Network to Programming 系列连载05
- Beej’s Guide Network to Programming 系列连载06
- Beej’s Guide Network to Programming 系列连载07
- Beej’s Guide Network to Programming 系列连载08
- Beej’s Guide Network to Programming 系列连载09
- Beej’s Guide Network to Programming 系列连载10
- Beej’s Guide Network to Programming 系列连载11
- Beej’s Guide Network to Programming 系列连载13
- Beej’s Guide Network to Programming 系列连载14
- Beej’s Guide Network to Programming 系列连载15
- Beej’s Guide Network to Programming 系列连载16
- Beej’s Guide Network to Programming 系列连载17
- Beej’s Guide Network to Programming 系列连载18
- ORA-12541:TNS:无监听程序
- JqueryMobile 动态添加元素css丢失的终极解决办法
- 冒泡排序法
- Couldn't perform the operation rollback: You can't perform any operations on this connection. It has
- js精髓
- Beej’s Guide Network to Programming 系列连载12
- 玩转App.Config
- 在Excel表格中合并列
- python发邮件
- Python2/3 中的异常
- android 调用摄像头
- values in the legend
- 在Linux下使用vim配合xxd查看并编辑二进制文件
- 改变命运的几句话:没有失败只有暂停成功