分享
 
 
 

AcceptEx

王朝百科·作者佚名  2010-08-09
窄屏简体版  字體: |||超大  

平台SDK:Windows套接字

AcceptEx

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

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

BOOL AcceptEx(

SOCKET sListenSocket,

SOCKET sAcceptSocket,

PVOID lpOutputBuffer,

DWORD dwReceiveDataLength,

DWORD dwLocalAddressLength,

DWORD dwRemoteAddressLength,

LPDWORD lpdwBytesReceived,

LPOVERLAPPED lpOverlapped

);

参数

sListenSocket

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

sAcceptSocket

[在]被接受的连接相关联的套接字。

lpOutputBuffer

[在]指向一个缓冲区,它接收了一个新的连接发送数据的第一个块,该服务器的本地地址,客户端的远程地址。接收数据写入到的偏移量0开始的第一部分的缓冲区,而地址写入缓冲区的后半部。如果此参数设置为NULL,将不会得到执行,也不会在本地或远程的地址是通过GetAcceptExSockaddrs函数调用使用。

dwReceiveDataLength

[在]在lpOutputBuffer字节数,将用于实际收到的数据缓冲区的开始。这一大小应不包括服务器的本地地址的大小或客户端的远程地址,他们被追加到输出缓冲区。如果dwReceiveDataLength是零,接受该连接将不会导致接收操作。相反,AcceptEx尽快完成连接到达,没有任何等待数据。

dwLocalAddressLength

[在]为本地地址信息保留的字节数。此值必须至少有16个字节比所使用的传输协议的最大地址长度多。

dwRemoteAddressLength

[在]为远程地址的信息保留的字节数。此值必须至少有16个字节比所使用的传输协议的最大地址长度多。

lpdwBytesReceived

[out]指向一个DWORD接收的字节数接收。此参数只有在设置操作完成同步。如果它返回ERROR_IO_PENDING和完成后,那么这个DWORD是从来没有,你必须获得从完成通知机制读取的字节数。

lpOverlapped

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

返回值

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

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

备注

在AcceptEx功能结合到一个单一的API中的几个socket函数/内核过渡。在AcceptEx函数,当成功的,执行三项任务:

一个新的连接被接受。

既为连接的本地和远程地址返回。

由远程发送数据的第一个块的欢迎。

一个程序可以连接到一个套接字更快地使用AcceptEx,而不是接受的功能。

一个单一的输出缓冲区接收数据:本地套接字地址(服务器)和远程套接字地址(客户端)。

使用单一的缓冲区可以提高性能,但GetAcceptExSockaddrs必须调用函数解析到它的三个不同部分的缓冲区。

为本地和远程地址缓冲区的大小必须是16个字节比为使用传输协议地址是因为在内部格式写入sockaddr结构规模庞大。例如,一个SOCKADDR_IN大小(地址结构的TCP / IP协议)是16个字节。因此,至少32个字节的缓冲区的大小必须被指定为本地和远程地址。

AcceptEx函数使用的重叠与Windows套接字1.1的I / O,接受功能。如果应用程序使用AcceptEx,它可以与服务的线程数量相对较少的不少客户。如同所有的Win32函数重叠,无论是Win32事件或完成端口可以被用来作为完成通知机制。

AcceptEx之间的另一个功能和Windows套接字1.1的主要区别是,接受功能的AcceptEx函数需要调用者已经有两个套接字:

一个指定的套接字听。

一个指定的套接字接受连接。

该sAcceptSocket参数必须是一个开放的插座,既不是约束,也不连接。

该GetQueuedCompletionStatus函数或GetOverlappedResult函数lpNumberOfBytesTransferred参数表明在请求接收的字节数。

当此操作成功完成,sAcceptHandle可以通过,但对下列功能只:

ReadFile

WriteFile

发送

recv

TransmitFile

关闭套接字

注意:如果您有一个名为同时与TF_DISCONNECT和TF_REUSE_SOCKET标志,指定套接字的TransmitFile函数已经回到了其中的约束,也不是没有连接的状态。然后,您可以通过套接字句柄在sAcceptSocket参数的AcceptEx函数。

当AcceptEx函数返回时,套接字sAcceptSocket是一个连接套接字在默认状态。该插座sAcceptSocket不是继承与sListenSocket参数相关的套接字,直到SO_UPDATE_ACCEPT_CONTEXT是套接字上设置的属性。使用Setsockopt函数来设置SO_UPDATE_ACCEPT_CONTEXT选项,指定sAcceptSocket的套接字句柄和sListenSocket作为选项的值。

例如:

error= setsockopt(sAcceptSocket,

SOL_SOCKET,

SO_UPDATE_ACCEPT_CONTEXT,

(char*)&sListenSocket,

sizeof(sListenSocket));

使用与SO_CONNECT_TIME选项来检查是否连接已接受了getsockopt功能。如果它已被接受,您可以判断多久连接已建立。返回值是秒数套接字已连接。如果套接字未连接,getsockopt返回0xFFFFFFFF的。这样的检查是必要的联系,看看是否连接已建立了一段时间没有收到任何数据。我们建议您终止这些连接。

例如:

int seconds;

BYTE opt = sizeof(seconds);

error= getsockopt(sAcceptSocket,SOL_SOCKET,SO_CONNECT_TIME,

(char*)&seconds,(int)&opt);

if(error= NO_ERROR)(

printf(“getsockopt(SO_CONNECT_TIME)失败:%d N”的,WSAGetLastError());

exit(1);

注释的ATM

没有与连接设置相关的重要问题时,使用Windows套接字2异步传输模式(ATM)。请参阅Windows套接字2备注部分承担重要的ATM连接设置信息函数文档。

需求

系统版本:要求Windows套接字1.1或更高版本。微软专用的扩展。

头文件:#include Mswsock.h。

导入库:Mswsock.lib。

建于2009年5月12日,2000Requirements

版本:要求Windows套接字1.1或更高版本。微软专用的扩展。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有