请输入您要查询的百科知识:

 

词条 WSAAccept()
释义

§ 简述:

根据条件函数的返回值有条件地接受连接,同时(可选地)创建和/或加入一个套接口组。

SOCKET WSAAPI WSAAccept ( SOCKET s, struct

sockaddr FAR * addr, int FAR * addrlen,

LPCONDITIONPROC lpfnCondition, DWORD

dwCallbackData );

s:标识一个套接口的描述字,该套接口在listen()后监听连接。

addr:(可选)指针,指向存放通讯层所知的连接实体地址的缓冲区。addr参数的具体格式由套接口创建时产生的地址族决定。

addrlen:(可选)指针,指向存放addr地址长度的整形数。

lpfnCondition:(可选的)用户提供的条件函数的进程实例地址。该函数根据参数传入的调用者信息作出接受或拒绝的决定,并通过给结果参数赋予特定的值来(可选地)创建和/或加入一个套接口组。

dwCallbackData:作为条件函数参数返回给应用程序的回调数据。WinSock不分析该参数。

§ 返回值:

若无错误发生,WSAAccept()函数返回所接受套接口的描述字。否则的话,将返回INVALID_SOCKET错误,应用程序可通过WSAGetLastError()来获取相应的错误代码。

addrlen参数引用的整形数初始时包含了addr参数所指向的空间数,在调用返回时包含了返回地址的实际长度。

§ 错误代码:

WSANOTINITIALISED                在调用本API之前应成功调用WSAStartup()。

WSAECONNREFUSED                根据条件函数的返回值(CF_REJECT)强制拒绝连接请求。

WSAENETDOWN                        网络子系统失效。

WSAEFAULT                         addrlen参数太小(小于sockaddr结构的大小),或者lpfnCondition并不是用户空间的一部分。

WSAEINTR                                通过WSACancelBlockingCall()函数取消(阻塞)调用。

WSAEINPROGRESS                一个阻塞WinSock调用正在进行。

WSAEINVAL                                WSAAccept()调用前未执行listen()调用;条件函数中的g参数非法;条件函数的返回值非法;套接口处于非法状态。

WSAEMFILE                                WSAAccept()调用时排队队列非空,且无可用套接口描述字。

WSAENOBUFS                        无可用缓冲区空间。

WSAENOTSOCK                        描述字不是一个套接口。

WSAEOPNOTSUPP                所引用的套接口不是支持面向连接服务类型的。

WSATRY_AGAIN                        根据条件函数的返回值(CF_DEFER) ,连接请求被推迟。

WSAEWOULDBLOCK                套接口标志为非阻塞,无连接请求供接受。

WSAEACCES                                被推迟的连接请求超时或撤销。

另请参阅:accept(), bind(), connect(), getsockopt(),listen(), select(), socket(), SAAsyncSelect(),        WSAConnect().

随便看

 

百科全书收录594082条中文百科知识,基本涵盖了大多数领域的百科知识,是一部内容开放、自由的电子版百科全书。

 

Copyright © 2004-2023 Cnenc.net All Rights Reserved
更新时间:2024/9/22 1:57:35