- 博客(5)
- 资源 (1)
- 收藏
- 关注
转载 tcp要点学习-断开连接
主要部分,四次握手: 断开连接其实从我的角度看不区分客户端和服务器端,任何一方都可以调用close(or closesocket)之类 的函数开始主动终止一个连接。这里先暂时说正常情况。当调用close函数断开一个连接时,主动断开的 一方发送FIN(finish报文给对方。有了之前的经验,我想你应该明白我说的FIN报文时什么东西。也就是 一个设置了FIN标志位的报文段。FIN报文也可能附
2012-02-02 16:36:20 299
转载 IOCP与线程
什么是完成包? 完成包,即IO Completion Packet,是指异步IO操作完毕后OS提交给应用层的通知包。IOCP维护了一个IO操作结果队列,里面 保存着各种完成包。应用层调用GQCS(也就是GetQueueCompletionStatus)函数获取这些完成包。 最大并发线程数 在一个典型的IOCP程序里,会有一些线程调用GQCS去获取IO操作结果。最大并发线程数指定在同一
2012-02-02 16:34:59 974
转载 IOCP之accept、AcceptEx、WSAAccept的区别
1. accept、WSAAccept是同步操作,AcceptEx是异步操作 2. WSAAccept函数早accept函数基础上添加了条件函数判断是否接受客户端连接 3. AcceptEx是异步的,可以同时发出多个AcceptEx请求,支持重叠IO操作
2012-02-02 16:26:26 1000
转载 IOCP中为什么使用WSAIoctl获取AcceptEx函数指针
Winsock2的其他供应商不一定会实现AcceptEx函数。同样情况也包括的其他Microsoft的特定APIs如TransmitFile,GetAcceptExSockAddrs以及其他Microsoft将在以后版本的windows里。 在运行WinNT和Win2000的系统上,这些APIs在Microsoft提供的DLL(mswsock.dll)里实现,可以通过链接mswsock.
2012-02-02 16:25:30 864 1
原创 do{}while(0)妙用
<br />#define MACRO_NAME(para) do{macro content}while(0)<br />的格式,总结了以下几个原因:<br />1,空的宏定义避免warning:<br />#define foo() do{}while(0)<br />2,存在一个独立的block,可以用来进行变量定义,进行比较复杂的实现。<br />3,如果出现在判断语句过后的宏,这样可以保证作为一个整体来是实现:<br />#define foo(x) /<br />action1(); /<br
2011-04-21 10:16:00 253
Lua程序设计(chm)
2009-08-19
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人