java ftp二进制传输_FTPClient 通过二进制类型、ASCII类型 传输

using System;

using System.Net;

using System.IO;

using System.Text;

using System.Net.Sockets;

namespace WindowsApplication1.Bll

{

///

/// FTPClient 的摘要说明。

///

public class FTPClient

{

#region 构造函数

///

/// 缺省构造函数

///

public FTPClient()

{

strRemoteHost = "";

strRemotePath = "";

strRemoteUser = "";

strRemotePass = "";

strRemotePort = 21;

bConnected = false;

} ///

/// 构造函数

///

///

///

///

///

///

public FTPClient(string remoteHost, string remotePath, string remoteUser, string remotePass, int remotePort)

{

strRemoteHost = remoteHost;

strRemotePath = remotePath;

strRemoteUser = remoteUser;

strRemotePass = remotePass;

strRemotePort = remotePort;

Connect();

}

#endregion

#region 登陆

///

/// FTP服务器IP地址

///

private string strRemoteHost;

public string RemoteHost

{

get

{

return strRemoteHost;

}

set

{

strRemoteHost = value;

}

}

///

/// FTP服务器端口

///

private int strRemotePort;

public int RemotePort

{

get

{

return strRemotePort;

}

set

{

strRemotePort = value;

}

}

///

/// 当前服务器目录

///

private string strRemotePath;

public string RemotePath

{

get

{

return strRemotePath;

}

set

{

strRemotePath = value;

}

}

///

/// 登录用户账号

///

private string strRemoteUser;

public string RemoteUser

{

set

{

strRemoteUser = value;

}

}

///

/// 用户登录密码

///

private string strRemotePass;

public string RemotePass

{

set

{

strRemotePass = value;

}

} ///

/// 是否登录

///

private Boolean bConnected;

public bool Connected

{

get

{

return bConnected;

}

}

#endregion

#region 链接

///

/// 建立连接

///

public void Connect()

{

socketControl = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);

IPEndPoint ep = new IPEndPoint(IPAddress.Parse(RemoteHost), strRemotePort);

// 链接

try

{

socketControl.Connect(ep);

}

catch (Exception)

{

throw new IOException("Couldn't connect to remote server");

}   // 获取应答码

ReadReply();

if (iReplyCode != 220)

{

DisConnect();

throw new IOException(strReply.Substring(4));

}   // 登陆

SendCommand("USER " + strRemoteUser);

if (!(iReplyCode == 331 || iReplyCode == 230))

{

CloseSocketConnect();//关闭连接

throw new IOException(strReply.Substri

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 可以使用 Java 中的 FTPClient 类来实现两台 FTP 服务器之间的文件传输。具体实现方式可以参考以下步骤: 1. 创建 FTPClient 对象,并连接到源 FTP 服务器和目标 FTP 服务器。 2. 登录源 FTP 服务器和目标 FTP 服务器。 3. 切换到源 FTP 服务器的指定目录,并获取需要传输的文件列表。 4. 遍历文件列表,依次下载文件并上传到目标 FTP 服务器的指定目录。 5. 关闭 FTP 连接。 需要注意的是,传输过程中可能会出现网络异常等问题,需要进行异常处理和重试机制,以确保文件传输的稳定性和可靠性。 ### 回答2: 在Java中,可以使用相关的类和方法实现两台FTP服务器之间的文件传输Java提供了一些FTP客户端库,例如Apache Commons Net库,可以方便地连接和操作FTP服务器。 首先,需要连接到两台不同的FTP服务器。可以使用FTPClient类的connect()方法分别连接到两个服务器。通过设置服务器的地址、端口号、用户名和密码来建立连接。连接成功后,可以使用FTPClient类的各种方法来操作服务器,例如上传文件、下载文件、删除文件等。 要从一个FTP服务器下载文件并上传到另一个FTP服务器,可以按照以下步骤进行操作: 1. 连接到第一个FTP服务器:使用FTPClient的connect()方法连接到第一个FTP服务器。 2. 登录第一个FTP服务器:使用FTPClient的login()方法登录到第一个FTP服务器,提供用户名和密码。 3. 设置被动模式:使用FTPClient的enterLocalPassiveMode()方法设置被动模式,以便与第一个FTP服务器进行数据传输。 4. 下载文件:使用FTPClient的retrieveFile()方法从第一个FTP服务器下载文件到本地。 5. 连接到第二个FTP服务器:使用FTPClient的connect()方法连接到第二个FTP服务器。 6. 登录第二个FTP服务器:使用FTPClient的login()方法登录到第二个FTP服务器,提供用户名和密码。 7. 设置被动模式:使用FTPClient的enterLocalPassiveMode()方法设置被动模式,以便与第二个FTP服务器进行数据传输。 8. 上传文件:使用FTPClient的storeFile()方法将文件上传到第二个FTP服务器。 9. 关闭连接:使用FTPClient的disconnect()方法关闭与两个FTP服务器的连接。 以上是简要的步骤,你可以根据具体情况进行调整和扩展。需要注意的是,传输过程中可能会出现一些异常情况,可以通过捕获和处理相关的异常来处理这些情况。 ### 回答3: 在Java中使用FTP(文件传输协议)进行文件传输需要以下步骤: 1. 导入必要的FTP库。 在Java中,可以使用Apache Commons Net库来处理FTP操作。需要将相关的jar文件导入到项目中。 2. 连接到FTP服务器。 使用FTPClient类对象连接到FTP服务器。通过设置服务器IP地址、端口号、用户名和密码,然后调用connect()方法建立连接。 3. 登录到FTP服务器。 使用登录凭据调用login()方法登录到FTP服务器。 4. 设置传输模式。 根据需要,可以设置FTP传输模式为二进制传输ASCII传输模式。可以使用setFileType()方法设置传输类型。 5. 进入指定目录。 如果需要进入服务器上的特定目录,可以使用changeWorkingDirectory()方法切换到相应的目录。 6. 开始上传或下载文件。 可以使用storeFile()方法上传文件到服务器,或使用retrieveFile()方法从服务器下载文件。在调用这些方法之前需要先打开本地文件流和服务器文件流。 7. 关闭FTP连接。 在文件传输完成后,应该关闭FTP连接。可以使用disconnect()方法关闭FTP连接。 总结: 以上是使用Java进行两台FTP服务器文件传输的基本步骤。通过使用FTPClient类的各种方法,可以实现与FTP服务器之间的文件上传和下载操作。在实际应用中,还需要考虑异常处理和错误处理,以确保文件传输的准确性和可靠性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值