当前位置:首页
开发技术指南» 文章正文
    引言:

 ·求高性能网络服务程序    »显示摘要«
    摘要: 最近写了一个服务程序,使用阻塞方式,开始时工作比较稳定,后来业务多了,常出现好几百个同时连接,服务程序常常崩溃。现在想写一个新的非阻塞的事件驱动方式的服务程序,请大家给点方案和注意事项,要是有参考代码就更加感谢了。 ......
 ·不能建立web页面    »显示摘要«
    摘要: 新手 建立一个project后 新建 web modules 输入名字后 提示:you must add a server 不知哪里配置的不对 ......


听说"完成端口"的效率较高,而且适合大量连接,服务器应用。那么是否适用于FTP服务器应用呢

最近在写一个企业内使用的专属FTP服务端程序。参考了一些资料,好像并没有说用哪种Winsock的IO模式更好。听说"完成端口"的效率较高,而且适合大量连接,服务器应用。那么是否适用于FTP服务器应用呢?在此请教各位!另外可有人知道像Serv-U采用哪种IO模式

用完成端口也可以,另外你可以参考   FileZilla   的源码,做得不错的开源项目

NO.2   作者: gengyong

Cybergate你什么意思?我不明白你到底懂不懂,怎么到处跟我较劲,请你这位懂的扯扯看.  
  事实就是如此,用任何一种IO模型都可以实现ftp,完成端口效率是比较高,适合用在大量连接的情况下,但事实上,ftp的实现主要瓶颈不是在Socket   IO上,是在File   IO上.怎么优化文件缓冲才是重点.  
  你说我不懂我可以理解,比我高的人很多很多,在他们面前我的确是什么也不懂,但是你说我乱扯,我不明白你的意思,我哪里扯错了,请你指出来,请你扯出对的来.  
  大家在这里都是讨论问题,请你先端正自己的态度.

NO.3   作者: guonix

首先支持一下gengyong(浮尘).  
   
  完成端口显然适用于楼主的情况,   不过完成端口并不是容易使用的,   要注意开发效率  
   
  可以在codeproject找到很多相关的实例

NO.4   作者: Cybergate

说说我的理解  
   
  一、不能简单地说瓶颈在Socket   IO还是File   IO上。有很多因素决定。  
   
  1、磁盘吞吐率跟网络带宽的比例,如果你只有10Mbps的出口带宽,FILE   IO永远不是问题。  
  2、磁盘寻道时间,这个往往更加重要,因为同时处理很多请求不可避免引起磁头的频繁移动。  
  3、磁盘缓冲,为了尽量减少磁头移动次数,应该提供足够的磁盘缓冲。这个过程可以交给操作系统处理,也可以由你自己来管理用户级缓冲。例如,某个SOCKET需要发送1kb文件数据的时候,先对这个文件预读128kb。同时,利用Critical   Section等机制不允许其他socket的磁盘读写来干扰这个预读的过程。  
   
  二、完成端口不能解决Socket   IO和File   IO的瓶颈,它只能减少内核态和用户态的切换次数,从而降低线程启动的开销。对于HTTP服务、网络游戏等应用,一般一次数据传送时间非常短,而连接数量非常多,完成端口是个不错的选择。但是对于FTP服务,大文件传输比较多,而且连接用户比较少,没必要用完成端口。而且ftp采用CR/LF来分割命令,会给完成端口的使用造成很大的困难  
   
 


    摘要: string[] a = new string[10]; for (int i=0; i<10;i++) { a[i] = convert.tostring(i+20); } int inta = 23; foreach(string b in a) { if (b == convert.tostring(inta)) ......
» 本期热门文章:
· 热门栏目:
» 相关精选文章
» 其它相关:

©2000-2007 All Rights Reserved. 最佳浏览:1024X768 MSIE