
windows网络编程
nondeep
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
日志,IOCP中一些应该注意的小细节
1.OVERLAPPED结构需要在绑定时初始化一次,填充为0 2.在工作线程中调用printf会出现打印两次的情况,这个不算问题,主要是因为工程的C运行时库不是多线程版本,将工程设置为支持Multithreaded就行了。 3.套接字资源回收的问题。对方如果断开了连接,也关闭了套接字,本地也检测到对方关闭了连接,但这并不意味着套接字资源已经释放掉了,还必须调用closesocket才能释放连接原创 2012-05-04 02:33:05 · 1255 阅读 · 0 评论 -
IOCP5: shutdown,WSASendDisconnect,DisconnectEx
1.::shutdown(s,SD_SEND); 表示禁止本地再发送数据到对端,并且,请求对方断开,如果对方不断开,本地套接字将处于FIN_WAIT_2状态,异步等待一段时间,时间到了之后,本地将主动断开连接,GetQueuedCompletionStatus将会返回,WSASend,WSARecv等函数的调用也都将失败,但socket资源并没有回收,仍需调用closesocket来释放套接字占原创 2013-02-01 07:02:14 · 2772 阅读 · 1 评论 -
WSASend重叠post数据
开门见山,直接就事论事。 假如有这么一个基于IOCP模型的Server,这个Server提供的所有服务中有这么一种服务……文件下载,我们再假设Server端存有一个20G的文件,客户端这时发送一个请求到服务端来,客户端要求下载这个20G的文件,由此可能引发一系列让人头疼的问题(不谈TransmitFile,我们谈WSASend) 先给出一段伪代码,这段代码肯定是有问题的,如下:原创 2013-01-24 20:44:28 · 5289 阅读 · 0 评论 -
WSARecv在完成端口中的线程关联性
发起WSARecv,WSASend,AcceptEx的线程在请求未完成前退出(也就是GetQueuedCompletionStatus还没返回的情况下退出),则请求取消,错误码995。 错误995很常见,请求未完成时,socket被关闭也是这个错误号,但由于请求发起线程退出而导致的995错误却很少见。一般server端都是在accept或acceptex返回之后投递第一个WSARec...原创 2018-04-11 19:50:46 · 1177 阅读 · 0 评论