Java怎么均衡访问多台ftp服务器

Java怎么均衡访问多台ftp服务器,第1张

多次需要把文件上传到单独的服务器,而程序是在单独的服务器上部署的,在进行文件操作的时候就需要跨服务器进行操作包括:文件上传、文件下载、文件删除等。跨服务器文件操作一般是需要FTP协议和SFTP协议两种,现在就通过Java实现FTP协议的文件上传。要实现FTP操作文件需要引入jar包: commons-net-141jar

百度贴吧

FTP是文件传输协议。在网站上,如果你想把文件和人共享,最便捷的方式莫过于把文件上传到FTP服务器上,其他人通过FTP客户端程序来下载所需要的文件。 FTP进行文件传输需要通过端口进行。一般所需端口为: 1 控制链路—TCP端口21。控制器端。用于发送指令给服务器以及等待服务器响应。 2 数据链路---TCP端口20。数据传输端口。用来建立数据传输通道的。主要用来从客户向服务器发送一个文件、从服务器向客户发送一个文件、从服务器向客户发送文件或目录列表。 FTP为了适应不同的网络环境,支持主动连接和被动连接两种模式。这两种模式都主要针对数据链路进行的,跟控制链路无关。 FTP的安全隐患: 一、FTP服务器软件漏洞。 二、明文口令。 三、FTP旗标。 四、通过FTP服务器进行端口扫描。 五、数据劫持。 FTP的安全策略: 一、使用较比安全的系统和FTP服务软件。 二、使用密文传输用户名和口令。 三、更改服务软件的旗标。 四、加强协议安全性。 SFTP是Secure File Transfer Protocol的缩写,是安全文件传送协议。可以为传输文件提供一种安全的加密方法。跟ftp几乎语法功能一样。 SFTP是SSH的一部分,是一种传输档案至Blogger伺服器的安全方式。它

这个是可以向服务器端发送文字的程序,就是在客户端发送一句hello在服务器也可以接受到hello,这个程序可以修改一下就可以了。具体修改方法是增加一个定时器,然后把字符流改成字节流,现在有点忙,你先研究啊,近两天帮你写写看。

服务器端:

import javanet;

import javaio;

public class DateServer {

public static void main(String[] args) {

ServerSocket server=null;

try{

server=new ServerSocket(6666);

Systemoutprintln(

"Server start on port 6666");

while(true){

Socket socket=serveraccept();

new SocketHandler(socket)start();

/

PrintWriter out=new PrintWriter(

new OutputStreamWriter(

socketgetOutputStream()

)

);

outprintln(new javautilDate()toLocaleString());

outclose();

/

}

}catch(Exception e){

eprintStackTrace();

}finally{

if(server!=null) {

try{

serverclose();

}catch(Exception ex){}

}

}

}

}

class SocketHandler extends Thread {

private Socket socket;

public SocketHandler(Socket socket) {

thissocket=socket;

}

public void run() {

try{

PrintWriter out=new PrintWriter(

new OutputStreamWriter(

socketgetOutputStream()

)

);

outprintln(

new javautilDate()

toLocaleString());

outclose();

}catch(Exception e){

eprintStackTrace();

}

}

}

客户端:

package combriup;

import javaio;

import javanet;

public class FtpClient {

public static void main(String[] args) {

if(argslength==0) {

Systemoutprintln("Usage:java FtpClient file_path");

Systemexit(0);

}

File file=new File(args[0]);

if(!fileexists()||!filecanRead()) {

Systemoutprintln(args[0]+" doesn't exist or can not read");

Systemexit(0);

}

Socket socket=null;

try{

socket=new Socket(args[1],IntegerparseInt(args[2]));

BufferedInputStream in=new BufferedInputStream(

new FileInputStream(file)

);

BufferedOutputStream out=new BufferedOutputStream(

socketgetOutputStream()

);

byte[] buffer=new byte[10248];

int i=-1;

while((i=inread(buffer))!=-1) {

outwrite(buffer,0,i);

}

Systemoutprintln(socketgetInetAddress()getHostAddress()+" send file over");

inclose();

outclose();

}catch(Exception e){

eprintStackTrace();

}finally{

if(socket!=null) {

try{

socketclose();

}catch(Exception ex){}

}

}

}

}

�0�2我知道apache有个commons net包,其中的FTPClient类可以实现客户端和服务之间的文件传输,但是我如果使用这种方式的话,就得将一台服务器上的文件传到我本地,再将这个文件传到另一台服务器上,感觉这中间多了一步操作;我想请问大家如何能不通过本机,直接操作两台服务器,将文件从一台服务器传到另一台服务器上,如果有人知道实现方式,希望不吝赐教,谢谢了!问题补充:<div class="quote_title"suziwen 写道</div<div class="quote_div"把JAVA程序放在其中一台FTP服务 器A上,通过A服务器上的JAVA登录到另一台FTP服务器,F代码执行文 件的上传,下载。 / /</div / /谢谢你们的回答,你们说的这种方式我明白。

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » Java怎么均衡访问多台ftp服务器

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情