如题!

解决方案 »

  1.   

    IOCP,IO完成端口,只有优秀的模型才能提高服务器端的效率
      

  2.   

    为什么一提到这个就有很多人建议用完成端口呢?奇怪了。
    拿网络游戏服务端来说,好多就是直接的TCP/IP常连接,因为一台服务器可以连接好几千的SOCKET如果这么多的SOCKET都并发了,那么服务器的处理能力也就差不多了,在多的话也就没意思了。不是吗?
    不知道高人是怎么理解的!!
      

  3.   

    这段话引用《网络编程技术》"“完成端口”模型是迄今为止最为复杂的一种I / O模型。然而,假若一个应用程序同时需要管理为数众多的套接字,那么采用这种模型,往往可以达到最佳的系统性能!但不幸的是,该模型只适用于Windows NT和Windows 2000操作系统。因其设计的复杂性,只有在你的应用
    程序需要同时管理数百乃至上千个套接字的时候,而且希望随着系统内安装的C P U数量的增
    多,应用程序的性能也可以线性提升,才应考虑采用“完成端口”模型。要记住的一个基本
    准则是,假如要为Windows NT或Windows 2000开发高性能的服务器应用,同时希望为大量套
    接字I / O请求提供服务(We b服务器便是这方面的典型例子),那么I / O完成端口模型便是最佳
    选择!"
      

  4.   

    UNIX下该用什么呢?大量的子进程?
      

  5.   

    这样看服务器端对数据的处理复杂度。如果服务器只是简单的接受连接并收到少量的简单信息,而不需要太多处理,用事件模型也很不错。
    要处理更多的突发性的并发连接,可以把accept最后一个参数设置得大一点。
      

  6.   

    在UNIX下使用大量的子进程肯定是不行的,每个进程都是需要耗费相对较多的资源的,试问计算机有多少资源可供耗费呢
      

  7.   

    IOCP是一个办法,如果连接数过大,UDP可以在适当的情况下考虑。
      

  8.   

    去看看c10k
    http://www.kegel.com/c10k.html
    超级经典文章