IOCP
Ziegler Han
造轮子十年,感悟:尽量不要造轮子。
展开
-
IOCP中在WSASend以及WSARecv的时候出现WSA_IO_PENDING情况的说明
IOCP中在WSASend以及WSARecv的时候出现WSA_IO_PENDING情况的说明应该是windows网络编程第二版里面提到过。现在整理一下。1:在IOCP中投递WSASend返回WSA_IO_PENDING的时候,表示异步投递已经成功,但是稍后发送才会完成。这其中涉及到了三个缓冲区。网卡缓冲区,TCP/IP层缓冲区,程序缓冲区。情况一:调用WSASend发送正确的时候(即立...转载 2018-11-30 17:42:03 · 1076 阅读 · 0 评论 -
调用GetLastError 错误代码 含义
ms-help://MS.MSDNQTR.v80.chs/MS.MSDN.v80/MS.WINCE.v50.en/wcecoreos5/html/wce50lrfsystemerrorsnumericalorder.htm The following table shows possible system error values.Code Description Name...转载 2018-11-30 17:43:40 · 1477 阅读 · 0 评论 -
GetQueuedCompletionStatus返回值的处理顺序
IOCP 是5种socket 编程模型里最复杂的一种,只使用几个api,就能使程序支持成百上千个连接,而GetQueuedCompletionStatus函数又是IOCP里最重要的api,这个函数返回值含有各种信息。一般的处理顺序为:是先判断函数GetQueuedCompletionStatus的返回值,如果失败,看看WSAGetLastError()的值。否则检查OVERLAPP结构体是否为N...转载 2018-11-30 17:45:11 · 626 阅读 · 0 评论 -
IOCP之WSASend,0字节探测发送。工作线程真正发送。
IOCP_WSASend函数是多线程消息包发送函数,这里会进行加锁拷贝数据到缓冲区,然后检测当前是否正在发送过程中。如果没有正在异步发送,那么投递0字节发送。#define OVL_RECEIVE 0X01#define OVL_SEND0 0X02#define OVL_CLOSE 0X03#define OVL_SENDE 0X04// 缓冲区安全锁...原创 2018-12-19 22:12:18 · 1664 阅读 · 0 评论 -
IOCP中在WSASend以及WSARecv的时候出现WSA_IO_PENDING情况的说明
应该是windows网络编程第二版里面提到过。现在整理一下。1:在IOCP中投递WSASend返回WSA_IO_PENDING的时候,表示异步投递已经成功,但是稍后发送才会完成。这其中涉及到了三个缓冲区。网卡缓冲区,TCP/IP层缓冲区,程序缓冲区。情况一:调用WSASend发送正确的时候(即立即返回,且没有错误),TCP/IP将数据从程序缓冲区中拷贝到TCP/IP层缓冲区中,然后不锁定该...转载 2018-12-18 21:59:14 · 530 阅读 · 0 评论