linux的accept函数源码,accept函数
13.2.5? accept函數(shù)
處于監(jiān)聽狀態(tài)的服務(wù)器在獲得客戶機(jī)的連接請(qǐng)求后,會(huì)將其放置在等待隊(duì)列中。當(dāng)系統(tǒng)空閑時(shí),將接受客戶機(jī)的連接請(qǐng)求。接收客戶機(jī)的連接請(qǐng)求使用accept函數(shù),該函數(shù)的具體信息如表13.6所示。
表13.6? ?accept函數(shù)
頭文件
函數(shù)形式int accept(int sockfd, struct sockaddr *addr, socklen_t *addrlen);
返回值成功失敗是否設(shè)置errno
返回新的套接字文件描述符?1是
說明:
accept函數(shù)用于面向連接類型的套接字類型(SOCK_STREAM和SOCK_SEQPACKET)。accept函數(shù)將從連接請(qǐng)求隊(duì)列中獲得連接信息,創(chuàng)建新的套接字,并返回該套接字的文件描述符。新創(chuàng)建的套接字用于服務(wù)器與客戶機(jī)的通信,而原來的套接字仍然處于監(jiān)聽狀態(tài)。
accept函數(shù)的sockfd參數(shù)為監(jiān)聽的套接字描述符。addr參數(shù)為指向結(jié)構(gòu)體sockaddr的指針。參數(shù)addrlen為addr參數(shù)指向的內(nèi)存空間的長(zhǎng)度。
錯(cuò)誤信息:
EAGAIN:套接字處于非阻塞狀態(tài),當(dāng)前沒有連接請(qǐng)求。
EBADF:非法的文件描述符。
ECONNABORTED:連接中斷。
EINTR:系統(tǒng)調(diào)用被信號(hào)中斷。
EINVAL:套接字沒有處于監(jiān)聽狀態(tài),或非法的addrlen參數(shù)。
EMFILE:達(dá)到進(jìn)程打開文件描述符限制。
ENFILE:達(dá)到打開文件數(shù)限制。
ENOTSOCK:文件描述符為文件的文件描述符。
EOPNOTSUPP:套接字類型不是SOCK_STREAM。
總結(jié)
以上是生活随笔為你收集整理的linux的accept函数源码,accept函数的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 数据库开发设计规范及表结构设计原则
- 下一篇: linux错误自动报告工具,linux