|
3驿站币
易语 转 C
易语代码 无任何问题
.版本 2
.子程序 work_WSA_s, , , 单独的任务
.局部变量 Overlapped, 整数型
.局部变量 NumberOfBytesTransferred, 整数型
.局部变量 CompletionKey, 整数型
.判断循环首 (真)
.如果真 (GetQueuedCompletionStatus (s_iocp, NumberOfBytesTransferred, CompletionKey, Overlapped, -1))
.如果真 (CompletionKey = -1)
跳出循环 ()
.如果真结束
WSARecvFrom (s_sock, Overlapped + 20, 1, 0, 0, Overlapped + 28, 16, Overlapped, 0)
.如果真结束
.判断循环尾 ()
----------------------------------------------------------------------------------
C代码
void work_WSA_s() {
u_long NumberOfBytesTransferred;
u_long CompletionKey;
LPOVERLAPPED Overlapped = NULL;
while (TRUE) {
if (GetQueuedCompletionStatus(s_iocp, &NumberOfBytesTransferred, &CompletionKey, &Overlapped, -1)) {
if (-1 == CompletionKey) {
break;
}
WSARecvFrom(s_sock, (WSABUF*)(&Overlapped + 20), 1, 0, 0, (SOCKADDR*)(&Overlapped + 28), 16, &Overlapped, 0);
//这里 应该是带结构体 的指针参数不对 老是蹦 求大神指导
}
}
} |
最佳答案
查看完整内容
调用下 WSAGetLastError 获取下错误码看看具体的错误信息是什么
上一篇: C++的递归调用?下一篇: 《实用C++》第19课的疑问!
|