我对你这个设计很有兴趣,能否EMAIL一分CODE,可以有空时多联系联系!!
期待你的回复!!!!!!!

解决方案 »

  1.   

    对这个问题很感兴趣,给我CODE可以吗?
      

  2.   

    我对你这个设计很感兴趣,能否EMAIL一份CODE,讨论讨论!!
      

  3.   

    一定是网络的原因吗?跟磁盘IO等因素没有关系吗?能给我一份CODE吗?只要关于socket通讯的部分就行
      

  4.   

    要做一个高效的服务器,应该使用多线程模型,但不是对每个客户连接创建一个线程,这样做会浪费资源,而且增加了线程调度的开销。合理的做法是使用一组线程为所有的客户服务,就象商场里由少数的服务员为大量的顾客服务一样,这组线程的具体数目要根据具体的情况而定。Windows NT对编写这类程序提供了支持,就是使用IO完成端口(IOCompletionPort),IIS就是使用这个模型的。
    MSDN里有一些关于使用IOCP的技术文章:MSDN->Technical Articles->Windows Platform->Base Services->Writing        Scalable Applications for Windows NTMSDN->Technical Articles->Windows Platform->Base Services->Writing Windows NT Server Applications in MFC Using I/O Completion Ports 和一些例子:Pop3 sample等。你可以看看。但服务器的效率不仅与通讯的效率有关,你的程序可能就需要进行大量的磁盘IO,对数据进行缓冲,减少访问磁盘的数量是很有必要的,。
      

  5.   

    pbi是大拿。我同意其观点。磁盘IO的算法很有讲究。《通信学报》上有很多相关文章。我就用socket API 作过多线程的服务器程序。每个线程为多个客户服务。
    有兴趣的mail我。
      

  6.   

     bird2000,能给我一份CODE 吗?谢谢
    [email protected]
      

  7.   

    套接字有一种IO模型,称为完成端口模型。据说有最好的性能。这是我的《Windows网络编程技术》书上说的。这本书在www.huachu.com.cn可以买到。你也可到我的主页musicbug.hongnet.com下载配书源码研究研究。下面是书上的一段:
        “完成端口”模型是迄今为止最为复杂的一种I/O模型。然而,假若一个应用程序同时需管理为数众多的套接字,那么应该采用这种模型,往往可以达到最佳的系统性能!但不幸的是该模型只适用于Windows NT和Windows 2000操作系统。因其设计的复杂性,只有你的应用程序需要同时管理数百乃至上千个套接字的时候,而且希望随着系统内安装的CPU数量的增多,应用程序的性能也可以线性上升,才应该考虑“完成端口”模型。要记住的一个基本准则是,假如要为Windows NT以及Windows 2000开发高性能的服务器应用,同时希望为大量套接字I/O请求提供服务(Web服务器便是这方面的例子),那么I/O完成端口模型便是最佳的选择!
      

  8.   

    对了能给我一份Code吗?[email protected]
    非常感谢
      

  9.   

    bird2000,能给我一份CODE 吗?谢谢
    [email protected]
      

  10.   

    关于IO完成端口的介绍,请参考Jeffrey Richter写的《Advanced Windows,3rd Edition》(中文版叫《Windows高级编程指南》第三版,清华大学出版社出版)。使用IOCP的例子,在MSDN里有。另外,我正在寻找一本书:Jeffrey Richter的《Programming Server-Side Applications for Microsoft Windows 2000》,如果有谁知道的话,请告知。谢谢。