`
fbxyfszc30000
  • 浏览: 28009 次
社区版块
存档分类
最新评论
阅读更多

   



<p class="MsoNormal"><span>项目由于需要支持大文件传输和下载,用到了开源的</span><span lang="EN-US">Apache FtpServer</span><span>(</span><span lang="EN-US">http://mina.apache.org/ftpserver/</span><span>)。但是,为了配合客户端使用,这些</span><span lang="EN-US">FTP</span><span>命令并不能满足需求,即需要增加一些命令,也需要删除或者修改一些对于整个系统可能带来安全问题的命令。</span>

<p class="MsoNormal"><span>二、修改</span><span lang="EN-US">Apache
FtpServer</span><span>的大致思路</span>

<p class="MsoNormal"><span lang="EN-US">2. </span><span>自定义一个类</span><span lang="EN-US">MyCommandFactoryFactory</span><span>,对</span><span lang="EN-US">DEFAULT_COMMAND_MAP</span><span>进行初始化控制,增加自己定义的命令。</span>

<p class="MsoNormal"><span lang="EN-US">3. </span><span>在</span><span lang="EN-US">server</span><span>启动之前,重新设置</span><span lang="EN-US">CommandFactory</span><span>。</span>
serverFactory.setCommandFactory((new
MyCommandFactoryFactory()).createCommandFactory());</span>

<p class="MsoNormal"><span lang="EN-US"></span>

<p class="MsoNormal"><span>对于定制后的</span><span lang="EN-US">FtpServer</span><span>,因为命令已经改变,使用传统的一些</span><span lang="EN-US">FTP</span><span>工具就无法对</span><span lang="EN-US">Server</span><span>进行测试了。这就需要自己写一个同样是定制过的简单的</span><span lang="EN-US">Ftp</span><span>客户端来进行测试。</span><span lang="EN-US">Apache</span><span>提供的</span><span lang="EN-US">commonnet</span><span>包(</span><span lang="EN-US">http://commons.apache.org/net/</span><span>)对于</span><span lang="EN-US">Ftp</span><span>协议进行了支持,并且是开源的,所以可以直接修改</span><span lang="EN-US">commonnet</span><span>的代码,提供一个定制版本的</span><span lang="EN-US">commonnet</span><span>,以对定制的</span><span lang="EN-US">Ftp</span><span>命令进行支持。然后再使用定制版本的</span><span lang="EN-US">commonnet</span><span>写一个简单的</span><span lang="EN-US">Ftp</span><span>客户端。</span>

<p class="MsoNormal"><span>四、修改</span><span lang="EN-US">commonnet</span><span>代码的大致思路</span>

<p class="MsoNormal"><span lang="EN-US"><span> </span></span><span>代码不多,很容易懂。需要修改或者增加命令。</span>

<p class="MsoNormal"><span lang="EN-US"><span> </span></span><span>这个类封装了</span><span lang="EN-US">Ftp</span><span>客户端的主要功能。增加或者修改具体的方法。</span>

<p class="MsoNormal"><span lang="EN-US"><span> </span></span><span>这个类是对外提供服务的。增加或者修改具体的方法。</span>

<p class="MsoNormal"><span lang="EN-US"><br></span>
<span>注:因为不能涉及具体业务,所以写的不够详细,见谅。基本思路已经写出来了,按照这个思路,再仔细看看代码,应该没问题的。</span>
 
0
0
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics