IOCP(完成端口)开发手记(4)

使用IOCP有什么优点呢?首先它是使用线程池的方法。在创建IOCP时,就要设置有多少并发线程。在调用CreateIoCompletionPort函数创建IOCP时,就要设置多少线程并发执行。如果设置NumberOfConcurrentThreads参数为0,就是让并发的线程数跟CPU个数一样。这样使用线程池,就可以不用在接收到连接时再创建任何新的线程,提供更高的响应速度。其次,IOCP是内核的调用...
阅读(4045) 评论(0)

IOCP(完成端口)开发手记(3)

当创建IOCP端口后,就要初始化连接监听,这跟一般的SOCKET是没有什么区别的,当然要把它关联到IOCP,否则就不会从IOCP那里得响应. 接着就会创建满足需要的接收请求,这样就会收到连接进来. 如果有连接进来,就会收在GetQueuedCompletionStatus函数里收到前面发出的请求包,接着就进行数据监听,或者数发送的请求.就可以进行这个连接的数据收发了.我一直想搞清楚几个状态之间的变...
阅读(3687) 评论(3)

IOCP(完成端口)开发手记(2)

在开发过程中,调用函数AcceptEx发现总是出错,出错代码是10038,根据调试,发现前面所有创建的SOCKET都是可用的,并且已经bind和Listen.就这样的一个问题,一直让我调试了一天,昨天晚10点多时候,想了一下,要不要清空输入的结构呢? 后来就接着测试一下,把OVERLAPPED结构的变量,全部清空为0,结果就没有问题了.真的气死人.通过一天时间总算解决了一个问题,接着就是怎么样接收...
阅读(3621) 评论(3)

IOCP(完成端口)开发手记(1)

IOCP是什么呢? 它就是Io Completion Port的缩写,它就是MS的内核调用机制.因为在硬件里,与驱动程序打交道都是通过协议栈进行的,并且是通过发送包请求实现.当在网络服务器使用它实现时,就会最接近内核部份,提高了性能,也提高速度.目前就要看看怎么样用IOCP创建高性能的服务器,怎么样响应大量用户的TCP,或者UDP的数据....
阅读(3566) 评论(3)
    个人资料
    • 访问:5594057次
    • 积分:73134
    • 等级:
    • 排名:第25名
    • 原创:1587篇
    • 转载:61篇
    • 译文:11篇
    • 评论:2086条
    文章存档
    最新评论