`
1998a
  • 浏览: 114075 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

FtpServer 中ftp协议消息的解析

    博客分类:
  • MINA
阅读更多

ftpserver中的业务逻辑同样封装在FtpHandler中,类似于MINA中的IoHandler,可以看他的源代码:

FtpHandler 写道
public interface FtpHandler {

void init(FtpServerContext context, Listener listener) throws Exception;


void sessionCreated(FtpIoSession session) throws Exception;


void sessionOpened(FtpIoSession session) throws Exception;


void sessionIdle(FtpIoSession session, IdleStatus status) throws Exception;


void exceptionCaught(FtpIoSession session, Throwable cause)
throws Exception;


void messageReceived(FtpIoSession session, FtpRequest request)
throws Exception;


void messageSent(FtpIoSession session, FtpReply reply) throws Exception;
}

 可以看到,FtpHandler的接口定义几乎和IoHandler一模一样,同样的sessionCreated等方法,调用的模式也是和IoHandler一样的。而和MINA所要求的IoHandler的交互就是需要FtpHandlerAdapter,将底层的消息等封装成FtpIoSession和FtpRequest。具体实现参见FtpHandlerAdapter。其实FtpHandlerAdapter什么都没做,只是单纯的new一个FtpIoSession或FtpRequest。

 

具体的ftp协议的解析,就是在DefaultFtpHandler#public void messageReceived(final FtpIoSession session, final FtpRequest request) throws Exception 中实现,

写道
String commandName = request.getCommand();
CommandFactory commandFactory = context.getCommandFactory();
Command command = commandFactory.getCommand(commandName);

 实现ftp命令的解析,好简单啊,比其他协议简单多了

然后就是从session中查找用于是否登录,类似于http中的session,不再废话

 

分享到:
评论

相关推荐

    apache ftpserver笔记

    Apache FTPServer是一款开源的FTP服务器软件,它是Apache MINA项目的一部分,用于构建高性能、可扩展的网络应用。这篇笔记主要围绕Apache FTPServer的使用、配置和相关开发进行讲解。 首先,Apache FTPServer提供了...

    ftpserver mina框架,适合学习

    FTPServer通过Mina框架实现了FTP协议的服务器端,支持基本的FTP命令如USER(用户认证)、PASS(密码验证)、LIST(列出目录内容)、RETR(下载文件)和STOR(上传文件)等。 在学习Apache Mina FTPServer时,你需要...

    FtpServer(源码)

    在这个主题中,我们关注的是一个名为“FtpServer”的源码项目,它是一个基于C# 2.0开发的FTP服务器实现,适用于Windows环境,并且已经在Visual Studio 2005(VS2005)下成功编译。 C#是一种面向对象的编程语言,由...

    ftpserver源代码.rar_ ftp server_c++ftpserver_ftp_ftp server source_

    总结起来,"ftpserver源代码.rar"提供了一个用C++实现的FTP服务器实例,有助于学习者深入理解FTP协议和服务器实现的细节。通过对源代码的分析和实践,开发者可以掌握网络编程、多线程编程、命令解析以及文件系统操作...

    ftpserver源代码

    在这个"ftpserver源代码"中,我们可以深入理解FTP服务器的工作原理和实现细节。 FTP服务器的核心在于其客户端-服务器架构,它由两部分组成:服务器端和客户端。服务器端运行在特定的计算机上,等待客户端的连接请求...

    VC++ FTP Server 服务器 好例子

    1. **套接字编程**:FTP协议基于TCP/IP,因此需要理解套接字(Socket)编程的基本原理,包括创建套接字、绑定IP地址和端口、监听连接请求、接受连接以及进行数据传输。 2. **多线程**:为了同时处理多个客户端的...

    QT实现FTPServer和FTPClient.zip

    在本文中,我们将深入探讨如何使用Qt框架来实现一个FTPServer和FTPClient。Qt是一个跨平台的应用程序开发框架,广泛用于C++编程,提供丰富的图形用户界面(GUI)功能和网络通信支持,使得开发FTP服务变得相对简单。 ...

    FtpServer_服务器_文件服务器_FTP服务器_ftpserver.zip

    FtpServer的源码中会有配置文件解析和配置加载的代码。 通过对FtpServer的源码进行学习,开发者可以了解FTP服务器的内部工作机制,掌握如何实现一个FTP服务器,同时也可以根据实际需求对其进行定制,比如增加新的...

    FTPserver源码(MFC)

    本项目“FTPserver源码(MFC)”是使用MFC库构建的一个简单的FTP服务器源代码,旨在帮助开发者理解FTP服务器的工作原理以及如何利用MFC来实现此类服务。 首先,我们需要了解MFC的基本概念。MFC是微软为了简化Windows ...

    ftp_server.rar_VC FtpServer_VC FTP server_ftp server vc_ftp_ser

    这个“ftp_server.rar_VC FtpServer_VC FTP server_ftp server vc_ftp_ser”压缩包包含了一个基于VC++编写的FTP服务器程序,它允许用户在Windows操作系统上搭建自己的FTP服务端。 在VC++环境下开发FTP服务器,...

    ftpserver.rar

    在这个“ftpserver.rar”压缩包中,包含了FTP服务器和客户端的源代码,这为我们提供了深入了解FTP工作原理和开发自定义FTP应用的机会。 FTP服务器的实现通常涉及以下关键组件: 1. **连接管理**:服务器需要监听...

    C++版FTPserver源码

    在这个“C++版FTPserver源码”中,我们可以深入学习和理解FTP协议的工作机制,以及如何使用C++来实现一个功能完备的FTP服务器。 FTP协议主要由两个主要的连接组成:控制连接和数据连接。控制连接用于发送命令和接收...

    c#实现FtpServer代码

    在实际开发中,你可以参考开源的FTP服务器库,如SharpFTP,它们已经实现了大部分FTP协议细节,可以减少重复工作。当然,创建自己的FTP服务器项目是一个很好的学习和实践网络编程、多线程以及文件系统操作的机会。 ...

    ftpServer服务器代码

    2. **命令解析**:FTP协议定义了一系列的命令,如`USER`(用户认证)、`PASS`(密码提交)、`CWD`(改变工作目录)、`LIST`(列出目录内容)等。`FTPServerUnit.pas`文件中的代码可能包含了这些命令的解析和响应逻辑...

    FTPServer 个人写的简单例子

    3. **命令交互**:FTP协议基于一系列命令,如`USER`、`PASS`用于认证,`LIST`用于获取目录信息,`PUT`和`GET`用于上传和下载文件,`CWD`用于改变工作目录等。 FTPServer项目可能包含了以下关键组件: - **监听器**...

    FtpServer.zip

    如果它是源代码,我们可以期待看到如何使用MFC类如CWinApp、CWinThread、CSocket等来构建服务器端的应用程序,以及如何实现FTP协议的解析和响应。如果是可执行文件,则需要使用合适的编译器和库(如Visual Studio)...

    FtpServer_ftpserver_

    在本场景中,我们讨论的是一个名为“FtpServer”的FTP服务器实现,它由用户指定初始工作目录,并在指定端口进行监听。 FTP服务器的核心功能包括: 1. **服务器端口侦听**:FTP服务器启动后,会在预设的端口(通常...

    FTPServer基于VC的WINdows服务器

    5. 安全性:考虑到FTP协议本身的不安全性,可以采用FTPS(FTP over TLS/SSL)或者SFTP(SSH File Transfer Protocol)来提供加密传输,增强数据安全。在VC++环境中,这可能需要集成OpenSSL库。 6. 自定义功能:根据...

    JAVA-FTP-SERVER.rar_FTP SERVER_ftp server java_java FtpServer_ja

    3. **命令解析**:FTP协议定义了一系列命令,如`USER`、`PASS`、`LIST`、`RETR`、`STOR`等,服务器需要解析这些命令并执行相应的操作。 4. **文件操作**:FTP的主要目的是文件传输,服务器需要能够读取、写入和删除...

    mfc ftp server

    在提供的"FTPServer"文件中,可能包含了实现上述功能的源代码,学习和分析这些代码将有助于你更深入地理解和实践MFC FTP服务器的开发。通过这种方式,你可以掌握网络编程、多线程、文件操作以及用户认证等核心技能,...

Global site tag (gtag.js) - Google Analytics