首页 > 代码库 > TCP_AIO_Server_ZC_02

TCP_AIO_Server_ZC_02

ZC: 这个例子是,1个skt 投递 N个未决的接收操作 (记得 以前查过 说 线程数是 CUP数量的2倍 比较合适)

 

1、

    // 当需要 投递多个接收操作的时候,可以将接收缓冲封装成类,然后再投递多个接收缓冲(模仿IOCP的做法)
    // ZC: 疑问:多个接收缓冲接收到数据后,如何确定它们在整个数据包中的先后顺序??
    // ZC: ∴ 暂时,先 一个skt对应一个接收缓冲区吧...
    // ZC: 基本的解决思路:“虽然使用I/O完成端口的操作总会按照它们被提交的顺序完成,但是线程调度问题可能会导致关联到完成端口的实际工作不按正常顺序完成。...”(来自<<Windows网络与通信程序设计>>)
    // ZC:    ∵IOCP的操作是顺序完成的,且会产生乱序问题的是线程调度,∴对投递多个"未决接收操作"进行同步编号就OK了。
    // ZC: 对于上面书上的说法,2个顾虑:
    // ZC:    (1)、IOCP的实现是否真是这样(IOCP顺序完成)?有MSDN的官方资料吗?
    // ZC:    (2)、Linux中,一个skt投递多个未决接收操作,也可以使用同样的思路吗?现在查到资料Linux未实现真正的网络异步IO(用epoll模拟),以后实现了的话 会是怎么样的情况?

 

2、

3、

 

TCP_AIO_Server_ZC_02