完成端口模型难题 忘得到高人指点
在完成端口模型中,服务器个客户端发送一些消息,为了提高效率,我使用了循环来发送消息,如果WSARecv返回NO_ERROR,表明数据已经发送出去,可以发送下一个消息,返回WSA_IO_PEDING(可能是这样写的),表明数据还正在发送,这个时候要跳出循环,等发送结束后,再来继续发送。
我的问题是,无论发送返回 NO_ERROR还是 WSA_IO_PEDING,系统都会调用GetQueuedCompletionPort()函数,但是如上所说,发送过程中,由一个出现了WSA_IO_PEDING,那么就必须等发送结束后继续发送,什么时候结束,必须由GetQueuedCompletionPort()函数通知才可以知道,每一次投递WSARecv成功,都要调用一次GetQueuedCompletionPort()函数,那到底哪次投递是我出现WSA_IO_PEDING的那次投递的呢????
请教各位高手