• listen()


    创建一个套接口并监听申请的连接.
    #include <winsock.h>
    int PASCAL FAR listen( SOCKET s, int backlog);
    S:用于标识一个已捆绑未连接套接口的描述字。
    backlog:等待连接队列的最大长度。
    中文名
    listen()
    简    述
    创建一个套接口并监听申请的连接
    注    释
    为了接受连接
    兼容性
    后备日志当前被限制为5

    目录

    注释编辑

    为了接受连接,先用socket()创建一个套接口的描述字,然后用listen()创建套接口并为申请进入的连接建立一个后备日志,然后便可用accept()接受连接了。listen()仅适用于支持连接的套接口,如SOCK_STREAM类型的。套接口s处于一种“变动”模式,申请进入的连接请求被确认,并排队等待被接受。这个函数特别适用于同时有多个连接请求的服务器;如果当一个连接请求到来时,队列已满,那么客户将收到一个WSAECONNREFUSED错误。
    当没有可用的描述字时,listen()函数仍试图正常地工作。它仍接受请求直至队列变空。当有可用描述字时,后续的一次listen()或accept()调用会将队列按照当前或最近的“后备日志”重新填充,如有可能的话,将恢复监听申请进入的连接请求。

    兼容性编辑

    后备日志当前被(默认地)限制为5。如同4.3 BSD Unix中的一样,小于1或大于5的数都会被舍入最近的有效值。

    返回值编辑

    如无错误发生,listen()返回0。否则的话,返回SOCKET_ERROR错误,应用程序可通过WSAGetLastError()获取相应错误代码

    错误代码编辑

    WSANOTINITIALISED:在使用此API之前应首先成功地调用WSAStartup()。
    WSAENETDOWN:WINDOWS套接口实现检测到网络子系统失效。
    WSAEADDRINUSE:试图用listen()去监听一个正在使用中的地址。
    WSAEINPROGRESS:一个阻塞的WINDOWS套接口调用正在运行中。
    WSAEINVAL:该套接口未用bind()进行捆绑,或已被连接。
    WSAEISCONN:套接口已被连接。
    WSAEMFILE:无可用文件描述字。
    WSAENOBUFS:无可用缓冲区空间。
    WSAENOTSOCK:描述字不是一个套接口
    WSAEOPNOTSUPP:该套接口不正常listen()调用。
  • 相关阅读:
    二叉树的遍历
    98验证二叉搜索树
    104二叉树的最大深度
    101对称二叉树
    100相同的树
    递归算法
    52N皇后II
    51N皇后
    90子集II
    526优美的排列
  • 原文地址:https://www.cnblogs.com/zzyoucan/p/5146987.html
Copyright © 2020-2023  润新知