位置:首页 > 软件操作教程 > 编程开发 > C语言 > 问题详情

C语言 accept()函数

提问人:刘团圆发布时间:2020-12-03

    处于监听状态的服务器在获得客户端的连接请求后,会将其放置在等待队列中。当系统空闲时,将接受客户端的连接请求。接收客户端的连接请求使用acceptO函数,该函数原型如下:

    int bind(int sockfd, const struct sockaddr *my_addr, socklen_t addrlen):

    accept()函数用于面向连接类型的套接字类型SOCK_STREAM和SOCK_SEQPACKET。 accept()函数将从连接请求队列中获得连接信息,创建新的套接字,并返回该套接字的文件描述符。新创建的套接字用于服务器与客户机的通信,而原来的套接字仍然处于监听状态。

    accept()函数的sockfd参数为监听的套接字描述符;addr参数为指向结构体sockaddr的指针;参数addrlen为addr参数指向的内存空间的长度。 

accept()函数常见的错误信息:

    © EAGAIN:套接字处于非阻塞状态,当前没有连接请求。

    © EBADF:非法的文件描述符。

    © ECONNABORTED:连接中断。

    © EINTR:系统调用被信号中断。

    © EINVAL:套接字没有处于监听状态,或非法的addrlen参数。

    © EMFILE:达到进程打开文件描述符限制。

    © ENFILE: 达到打开文件数限制。

    © ENOTSOCK:文件描述符为文件的文件描述符。

    © EOPNOTSUPP:套接字类型不是SOCK__STREAM0

继续查找其他问题的答案?

相关视频回答
回复(0)
返回顶部