在IO 完全模式下如何知道AcceptEx函数是否接受客户的连接
我用IO完全模式作了一个程序主线程循环用AcceptEx接受连接,如下
while(1)
{
SOCKET Acceptsock=WSASocket
(AF_INET,SOCK_STREAM,0,NULL,0,WSA_FLAG_OVERLAPPED);
DWORD bytes;
LPPER_IO_OPERATION_DATA overlapped;//一个以OVERLAPPED开头的结构
overlapped=(LPPER_IO_OPERATION_DATA)GlobalAlloc(GPTR,
sizeof(PER_IO_OPERATION_DATA));
overlapped->oplvtype = ZHU_ACCEPT;
overlapped->sock = Acceptsock;
char buff[sizeof(SOCKADDR_IN)*2+16];
if(AcceptEx(Listensock,Acceptsock,buff,0,
sizeof(SOCKADDR_IN)+16,
sizeof(SOCKADDR_IN)+16,
&bytes,&(overlapped->overlap))==0)
{
if(GetLastError()!=WSA_IO_PENDING)
{
AfxMessageBox("Accept Error:%d",aa);
return;
}
}
}
但是因为采用异步方式接受连接,故次段程序不停运行,不断的开辟LPPER_IO_OPERATION_DATA 结构空间,但只有有连接时创建的结构有效,别的要将内存回收,请问我如何在这段程序中知道那一次调用的AcceptEx是真正接受到连接的?
while(1)
{
SOCKET Acceptsock=WSASocket
(AF_INET,SOCK_STREAM,0,NULL,0,WSA_FLAG_OVERLAPPED);
DWORD bytes;
LPPER_IO_OPERATION_DATA overlapped;//一个以OVERLAPPED开头的结构
overlapped=(LPPER_IO_OPERATION_DATA)GlobalAlloc(GPTR,
sizeof(PER_IO_OPERATION_DATA));
overlapped->oplvtype = ZHU_ACCEPT;
overlapped->sock = Acceptsock;
char buff[sizeof(SOCKADDR_IN)*2+16];
if(AcceptEx(Listensock,Acceptsock,buff,0,
sizeof(SOCKADDR_IN)+16,
sizeof(SOCKADDR_IN)+16,
&bytes,&(overlapped->overlap))==0)
{
if(GetLastError()!=WSA_IO_PENDING)
{
AfxMessageBox("Accept Error:%d",aa);
return;
}
}
}
但是因为采用异步方式接受连接,故次段程序不停运行,不断的开辟LPPER_IO_OPERATION_DATA 结构空间,但只有有连接时创建的结构有效,别的要将内存回收,请问我如何在这段程序中知道那一次调用的AcceptEx是真正接受到连接的?
...全文
相关推荐
seasar框架开发常用数据关系组件
日本开源javaweb框架seasar,采用sql以独立文件存在的形式,使得sql易于编写和管理。
seasar教程,java开发框架之一
seasar教程,最流行的java开发框架之一,再过几年可能成为主流. struts与Spring与Hibernate的简化版本,国外很多大公司己经用了几年了,NEC,LG的软件开发都是用这个的。兄弟们快学吧
小日本的开源框架 Seasar2
小日本的开源框架 Seasar2 所 谓“Seasar2”就是一个“轻量级容器”,面向无法摆脱“Java 应用开发”之烦恼的所谓“开发者”,它能够保证开发的“高生产率和高品质”。并且同“其它轻量级容器”不同的是,“完全不需要书写设定文件”,“就算是应 用程序发生改动也无需再次起动即可直接识别变更,因此具有脚本语言的灵活性”。
Seasar2其实就是类似于Spring的一个开源框架
所谓“Seasar2”就是一个“轻量级容器”,面向无法摆脱“Java 应用开发”之烦恼的所谓“开发者”,它能够保证开发的“高生产率和高品质”。并且同“其它轻量级容器”不同的是,“完全不需要书写设定文件”,“就算是应用程序发生改动也无需再次起动即可直接识别变更,因此具有脚本语言的灵活性”。
seasar2 官方例子代码
seasar2 官方例子代码。 学习通过的话;对于java的开发就大有帮助。


