b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

acceptex_用户态和内核态的区别_iocp

电脑杂谈  发布时间:2016-11-23 08:03:54  来源:网络整理

平台SDK:Windows套接字

AcceptEx

Windows套接字AcceptEx函数接受1个新的连接,返回本地和远程地址,并接收由客户端应用程序发送的第一块数据。Windows 95/98不支持AcceptEx函数。

注意:此函数是1个Microsoft特定的扩展,Windows Sockets规范。有关详细信息,请参阅Microsoft扩展和Windows Sockets 2。

BOOL AcceptEx(

IN SOCKET sListenSocket,

IN SOCKET sAcceptSocket,

IN PVOID lpOutputBuffer,

IN DWORD dwReceiveDataLength,

IN DWORD dwLocalAddressLength,

IN DWORD dwRemoteAddressLength,

OUT LPDWORD lpdwBytesReceived,

IN LPOVERLAPPEDlpOverlapped

);

参数

sListenSocket

[in]侦听套接字。服务器应用程序在这个套接字上等待连接。

sAcceptSocket

[in]将用于连接的套接字。此套接字必须不能已经绑定或者已经连接。

lpOutputBuffer

[in]指向1个缓冲区,该缓冲区用于接收新建连接的所发送数据的第1个块、该服务器的本地地址和客户端的远程地址。接收到的数据将被写入到缓冲区0偏移处,而地址随后写入。 该参数必须指定,如果此参数设置为NULL,将不会得到执行,也无法通过GetAcceptExsockaddrs函数获得本地或远程的地址。

dwReceiveDataLength

[in]lpOutputBuffer字节数,指定接收数据缓冲区lpOutputBuffer的大小。这1大小应不包括服务器的本地地址的大小或客户端的远程地址,他们被追加到输出缓冲区。如果dwReceiveDataLength是零,AcceptEx将不等待接收任何数据,而是尽快建立连接。

dwLocalAddressLength

[in]为本地地址信息保留的字节数。此值必须比所用传输协议的最大地址大小长十六个字节。

dwRemoteAddressLength

[in]为远程地址的信息保留的字节数。此值必须比所用传输协议的最大地址大小长十六个字节。 该值不能为0。

dwBytesReceived

[out]指向1个DWORD用于标识接收到的字节数。此参数只有在同步模式下有意义。如果函数返回ERROR_IO_PENDING并在迟些时候完成操作,那么这个DWORD没有意义,这时你必须获得从完成通知机制中读取操作字节数。

lpOverlapped

[in]1个OVERLAPPED结构,用于处理请求。此参数必须指定,它不能为空。

返回值

如果没有错误发生,AcceptEx函数成功完成和真正的返回值。

如果函数失败,AcceptEx返回FALSE。该WSAGetLastError函数可以调用返回扩展的错误信息。如果WSAGetLastError返回ERROR_IO_PENDING,那么这次行动成功启动并仍在进行中。

备注

*在AcceptEx结合了几个socket函数的功能,acceptEx函数当成功时执行三项任务:


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-21596-1.html

相关阅读
    发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

    热点图片
    拼命载入中...