代码之家  ›  专栏  ›  技术社区  ›  Pythagoras of Samos

基于socket模型的图形表示与解释

  •  0
  • Pythagoras of Samos  · 技术社区  · 14 年前

    http://img600.imageshack.us/img600/3567/graphicrepresentation.png

    我的推理是对的吗?如果是的话,有人能给我看看,就像上面的计划一样,你会怎么做 I/O完成端口 工作?在我开始学习制作像mmorpg那样的高性能服务器之前,我想知道它是如何工作的。

    2 回复  |  直到 7 年前
        1
  •  2
  •   Len Holgate    14 年前

    使用IOCP,所有的send和recv调用都由一个线程池处理(一个小的线程池通常很好),所以画一个包含send/recv的框,上面有3个红点,下面有10000个蓝点。

    使用IOCP,您会发出一系列重叠的请求。一旦这些请求完成,它们就被放入一个队列(IOCP)中,并且为该队列提供服务的线程可以删除它们并处理它们。因此,如果有10000个连接都有一个挂起的读取,那么当数据从每个客户机到达时,您将得到进入IOCP的读取完成。您的线程将被唤醒并处理完成,它们可能会发出更多的重叠读操作,也可能发出重叠写操作。大多数情况下,您不关心重叠写入何时完成(除非您确实关心;),因此完成处理只包括释放每个操作的数据(即,您刚刚发送到客户端的数据)和减少连接上的使用计数。。。

    我的文章链接到 free IOCP server framework 佩奇再解释一下。

        2
  •  2
  •   Alexandre C.    14 年前

    有一个 Dr Dobbs article 关于这个。

    推荐文章