完成端口 群发问题 GetQueuedCompletionStatus收到的是进出全部信息 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 这个程序是一收到读数据马上就写回去,但是我给客户端群发后,没再向服务端发送数据啊,在GetQueuedCompletionStatus就不应该有读数据产生了啊,而应该阻塞啊!为什么还会死循环的读然后再写呢? while( pos != NULL ) pos处理了么?如果pos一直是非空呢??? case IOCP_WRITE: 一直在写数据,当然iocp就一直响应 但GetQueuedCompletionStatus收到发送完消息后又在HandleData()里把它改为IOCP_READ了啊 你的过程有问题假设从这里开始switch( lp_io->operation ) IOCP_READ:->case IOCP_COMPLETE_READ: lp_io->operation = IOCP_WRITE;->DataAction()case IOCP_WRITE:->投递write->GetQueuedCompletionStatusswitch( lp_io->operation ) case IOCP_WRITE: lp_this->HandleData( lp_io, IOCP_COMPLETE_WRITE );->HANDLEDATA() case IOCP_COMPLETE_WRITE: lp_io->operation = IOCP_READ;->DataAction() case IOCP_READ: nRet = WSARecv( lp_io->socket, &lp_io->wsaBuf, 1, &dwBytes, &dwFlags, &lp_io->ol,NULL);又开始读了。 这个recv如果完成了,又开始上面那个循环 case IOCP_COMPLETE_WRITE: lp_io->operation = IOCP_READ;把这个IOCP_READ改成IOCP_END行不行? 你说的WSARecv又开始接收数据,但是client端没把数据发过来,是不是完成端口也会收到读完成消息啊? 问题解决拉,原来是发送时有nRet = WSASend(pKey->socket, &lp_io->wsaBuf,1,&dwBytes,0,&lp_io->ol,NULL);lp_io->ol应改为pKey->socket同时还要让pkey->operation=IOCP_WRITE防止读数据后又写数据的死循环! VC中可以用什么方法取到本机的网卡物理地址 ADO update增加问题 Xtreme ToolKit 问题 关于VC++中的图片缩放问题,项目还有2天了,急急急,希望好心人帮帮我啊,小弟跪谢 怎么样删除一个文本文件中的一部分内容?? ji !! 关于早上的问题请dongfa(一桶江湖),xundeng(寻灯) ,younggle(洋溢) 各位仁兄过来领分 请问一个在控件中画图的语法错误? 心情差到了极点,散分。 如何在单文档显示tree,分不够我在加 请教:整数转字符串的函数是什么? 两个简单问题 怎样启动屏幕保护?
pos处理了么?如果pos一直是非空呢???
一直在写数据,当然iocp就一直响应
假设从这里开始
switch( lp_io->operation )
IOCP_READ:
->
case IOCP_COMPLETE_READ:
lp_io->operation = IOCP_WRITE;
->
DataAction()
case IOCP_WRITE:
->投递write
->GetQueuedCompletionStatus
switch( lp_io->operation )
case IOCP_WRITE:
lp_this->HandleData( lp_io, IOCP_COMPLETE_WRITE );->HANDLEDATA()
case IOCP_COMPLETE_WRITE:
lp_io->operation = IOCP_READ;
->DataAction()
case IOCP_READ:
nRet = WSARecv( lp_io->socket,
&lp_io->wsaBuf,
1,
&dwBytes,
&dwFlags,
&lp_io->ol,NULL);
又开始读了。
lp_io->operation = IOCP_READ;
把这个IOCP_READ改成IOCP_END行不行?
pKey->socket,
&lp_io->wsaBuf,
1,
&dwBytes,
0,
&lp_io->ol,NULL);lp_io->ol应改为pKey->socket同时还要让pkey->operation=IOCP_WRITE防止读数据后又写数据的死循环!