5.5 listen() --- 如果有“人”,请叫我?
生活随笔
收集整理的這篇文章主要介紹了
5.5 listen() --- 如果有“人”,请叫我?
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
原文:https://beej.us/guide/bgnet/html/#listen
?
5.5 listen() --- 如果有“人”,請(qǐng)叫我?
?????是該換換內(nèi)容的時(shí)候了。
? ? 假如不僅僅希望與遠(yuǎn)程的一個(gè)地址相連,或者說, 希望與多個(gè)地址相連。怎么辦?
? ? 分兩步:首先,監(jiān)聽--listen(),然后,你接受--accept()
????函數(shù)原型:
int listen(int sockfd, int backlog);- sockfd
是調(diào)用socket() 返回的套接字文件描述符。
- backlog
是在進(jìn)入隊(duì)列中允許的連接數(shù)目。
什么意思呢?
進(jìn)入的連接是在隊(duì)列中一直等待直到你接受 (accept())連接。
它們的數(shù)目限制于隊(duì)列的允許。
大多數(shù)系統(tǒng)的允許數(shù)目是20,你也可以設(shè)置為5到10。
?
和別的函數(shù)一樣,在發(fā)生錯(cuò)誤的時(shí)候返回-1,并設(shè)置全局錯(cuò)誤變量 errno。
?
如果你想偵聽進(jìn)入的連接,那么調(diào)用的順序:
getaddrinfo();socket();bind();listen();/* accept() goes here */真正麻煩的部分在 accept()。
?
總結(jié)
以上是生活随笔為你收集整理的5.5 listen() --- 如果有“人”,请叫我?的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 计算机辅助翻译 教学大纲,计算机辅助翻译
- 下一篇: 安装虚拟机vmware8.0.4版本