当前位置:首页 » 文件管理 » FTP客户端编程有界面

FTP客户端编程有界面

发布时间: 2022-12-07 00:00:29

㈠ 求用java写一个ftp服务器客户端程序。

import java.io.*;
import java.net.*;public class ftpServer extends Thread{ public static void main(String args[]){
String initDir;
initDir = "D:/Ftp";
ServerSocket server;
Socket socket;
String s;
String user;
String password;
user = "root";
password = "123456";
try{
System.out.println("MYFTP服务器启动....");
System.out.println("正在等待连接....");
//监听21号端口
server = new ServerSocket(21);
socket = server.accept();
System.out.println("连接成功");
System.out.println("**********************************");
System.out.println("");

InputStream in =socket.getInputStream();
OutputStream out = socket.getOutputStream();

DataInputStream din = new DataInputStream(in);
DataOutputStream dout=new DataOutputStream(out);
System.out.println("请等待验证客户信息....");

while(true){
s = din.readUTF();
if(s.trim().equals("LOGIN "+user)){
s = "请输入密码:";
dout.writeUTF(s);
s = din.readUTF();
if(s.trim().equals(password)){
s = "连接成功。";
dout.writeUTF(s);
break;
}
else{s ="密码错误,请重新输入用户名:";<br> dout.writeUTF(s);<br> <br> }
}
else{
s = "您输入的命令不正确或此用户不存在,请重新输入:";
dout.writeUTF(s);
}
}
System.out.println("验证客户信息完毕...."); while(true){
System.out.println("");
System.out.println("");
s = din.readUTF();
if(s.trim().equals("DIR")){
String output = "";
File file = new File(initDir);
String[] dirStructure = new String[10];
dirStructure= file.list();
for(int i=0;i<dirStructure.length;i++){
output +=dirStructure[i]+"\n";
}
s=output;
dout.writeUTF(s);
}
else if(s.startsWith("GET")){
s = s.substring(3);
s = s.trim();
File file = new File(initDir);
String[] dirStructure = new String[10];
dirStructure= file.list();
String e= s;
int i=0;
s ="不存在";
while(true){
if(e.equals(dirStructure[i])){
s="存在";
dout.writeUTF(s);
RandomAccessFile outFile = new RandomAccessFile(initDir+"/"+e,"r");
byte byteBuffer[]= new byte[1024];
int amount;
while((amount = outFile.read(byteBuffer)) != -1){
dout.write(byteBuffer, 0, amount);break;
}break;

}
else if(i<dirStructure.length-1){
i++;
}
else{
dout.writeUTF(s);
break;
}
}
}
else if(s.startsWith("PUT")){
s = s.substring(3);
s = s.trim();
RandomAccessFile inFile = new RandomAccessFile(initDir+"/"+s,"rw");
byte byteBuffer[] = new byte[1024];
int amount;
while((amount =din.read(byteBuffer) )!= -1){
inFile.write(byteBuffer, 0, amount);break;
}
}
else if(s.trim().equals("BYE"))break;
else{
s = "您输入的命令不正确或此用户不存在,请重新输入:";
dout.writeUTF(s);
}
}

din.close();
dout.close();
in.close();
out.close();
socket.close();
}
catch(Exception e){
System.out.println("MYFTP关闭!"+e);

}
}}

㈡ FTP工作原理是怎样的

ftp的传输有两种方式:ascii传输模式和二进制数据传输模式。 1.ascii传输方式:假定用户正在拷贝的文件包含的简单ascii码文本,如果在远程机器上运行的不是unix,当文件传输时ftp通常会自动地调整文件的内容以便于把文件解释成另外那台计算机存储文本文件的格式。 但是常常有这样的情况,用户正在传输的文件包含的不是文本文件,它们可能是程序,数据库,字处理文件或者压缩文件(尽管字处理文件包含的大部分是文本,其中也包含有指示页尺寸,字库等信息的非打印字符)。在拷贝任何非文本文件之前,用binary 命令告诉ftp逐字拷贝,不要对这些文件进行处理,这也是下面要讲的二进制传输。 推荐阅读:FTP使用命令详解2.二进制传输模式:在二进制传输中,保存文件的位序,以便原始和拷贝的是逐位一一对应的。即使目的地机器上包含位序列的文件是没意义的。例如,macintosh以二进制方式传送可执行文件到windows系统,在对方系统上,此文件不能执行。 如果你在ascii方式下传输二进制文件,即使不需要也仍会转译。这会使传输稍微变慢 ,也会损坏数据,使文件变得不能用。(在大多数计算机上,ascii方式一般假设每一字符的第一有效位无意义,因为ascii字符组合不使用它。如果你传输二进制文件,所有的位都是重要的。)如果你知道这两台机器是同样的,则二进制方式对文本文件和数据文件都是有效的。 ftp的工作方式 ftp支持两种模式,一种方式叫做standard (也就是port方式,主动方式),一种是 passive (也就是pasv,被动方式)。 standard模式 ftp的客户端发送 port 命令到ftp服务器。passive模式ftp的客户端发送 pasv命令到ftp server。 下面介绍一个这两种方式的工作原理: port模式ftp 客户端首先和ftp服务器的tcp 21端口建立连接,通过这个通道发送命令,客户端需要接收数据的时候在这个通道上发送port命令。 port命令包含了客户端用什么端口接收数据。在传送数据的时候,服务器端通过自己的tcp 20端口连接至客户端的指定端口发送数据。 ftp server必须和客户端建立一个新的连接用来传送数据。 passive模式在建立控制通道的时候和standard模式类似,但建立连接后发送的不是port命令,而是pasv命令。ftp服务器收到pasv命令后,随机打开一个高端端口(端口号大于1024)并且通知客户端在这个端口上传送数据的请求,客户端连接ftp服务器此端口,然后ftp服务器将通过这个端口进行数据的传送,这个时候ftp server不再需要建立一个新的和客户端之间的连接。 很多防火墙在设置的时候都是不允许接受外部发起的连接的,所以许多位于防火墙后或内网的ftp服务器不支持pasv模式,因为客户端无法穿过防火墙打开ftp服务器的高端端口;而许多内网的客户端不能用port模式登陆ftp服务器,因为从服务器的tcp 20无法和内部网络的客户端建立一个新的连接,造成无法工作. 如果你要是不知道怎么用ftp下东西,那很好解决,只要是下一个ftp的软件,比如flashfxp,ultraftp等等软件,里面输入地址直接下载就是了。 如果你要是想建一个ftp的站点,你就要自己做软件配置用server-u或者其他的软件直接设置一下就可以。本文来自: 编程入门网 http://www.bianceng.cn/Servers/Ftp/200707/3229.htm

㈢ 对FTP的理解(分客户端和服务器端)

FTP(File Transfer Protocol)是文件传输协议的简称。
FTP的作用
正如其名所示:FTP的主要作用,就是让用户连接上一个远程计算机(这些计算机上运行着FTP服务器程序)察看远程计算机有哪些文件,然后把文件从远程计算机上拷到本地计算机,或把本地计算机的文件送到远程计算机去。
FTP工作原理
拿下传文件为例,当你启动FTP从远程计算机拷贝文件时,你事实上启动了两个程序:一个本地机上的FTP客户程序:它向FTP服务器提出拷贝文件的请求。另一个是启动在远程计算机的上的FTP服务器程序,它响应你的请求把你指定的文件传送到你的计算机中。FTP采用“客户机/服务器”方式,用户端要在自己的本地计算机上安装FTP客户程序。FTP客户程序有字符界面和图形界面两种。字符界面的FTP的命令复杂、繁多。图形界面的FTP客户程序,操作上要简洁方便的多。
简单地说,支持FTP协议的服务器就是FTP服务器,下面介绍一下什么是FTP协议(文件传输协议)
一般来说,用户联网的首要目的就是实现信息共享,文件传输是信息共享非常重要的一个内容之一。Internet上早期实现传输文件,并不是一件容易的事,我们知道 Internet是一个非常复杂的计算机环境,有PC,有工作站,有MAC,有大型机,据统计连接在Internet上的计算机已有上千万台,而这些计算机可能运行不同的操作系统,有运行Unix的服务器,也有运行Dos、Windows的PC机和运行MacOS的苹果机等等,而各种操作系统之间的文件交流问题,需要建立一个统一的文件传输协议,这就是所谓的FTP。基于不同的操作系统有不同的FTP应用程序,而所有这些应用程序都遵守同一种协议,这样用户就可以把自己的文件传送给别人,或者从其它的用户环境中获得文件。
与大多数Internet服务一样,FTP也是一个客户机/服务器系统。用户通过一个支持FTP协议的客户机程序,连接到在远程主机上的FTP服务器程序。用户通过客户机程序向服务器程序发出命令,服务器程序执行用户所发出的命令,并将执行的结果返回到客户机。比如说,用户发出一条命令,要求服务器向用户传送某一个文件的一份拷贝,服务器会响应这条命令,将指定文件送至用户的机器上。客户机程序代表用户接收到这个文件,将其存放在用户目录中。
在FTP的使用当中,用户经常遇到两个概念:"下载"(Download)和"上载"(Upload)。"下载"文件就是从远程主机拷贝文件至自己的计算机上;"上载"文件就是将文件从自己的计算机中拷贝至远程主机上。用Internet语言来说,用户可通过客户机程序向(从)远程主机上载(下载)文件。
使用FTP时必须首先登录,在远程主机上获得相应的权限以后,方可上载或下载文件。也就是说,要想同哪一台计算机传送文件,就必须具有哪一台计算机的适当授权。换言之,除非有用户ID和口令,否则便无法传送文件。这种情况违背了Internet的开放性,Internet上的FTP主机何止千万,不可能要求每个用户在每一台主机上都拥有帐号。匿名FTP就是为解决这个问题而产生的。
匿名FTP是这样一种机制,用户可通过它连接到远程主机上,并从其下载文件,而无需成为其注册用户。系统管理员建立了一个特殊的用户ID,名为anonymous, Internet上的任何人在任何地方都可使用该用户ID。
通过FTP程序连接匿名FTP主机的方式同连接普通FTP主机的方式差不多,只是在要求提供用户标识ID时必须输入anonymous,该用户ID的口令可以是任意的字符串。习惯上,用自己的E-mail地址作为口令,使系统维护程序能够记录下来谁在存取这些文件。
值得注意的是,匿名FTP不适用于所有Internet主机,它只适用于那些提供了这项服务的主机。
当远程主机提供匿名FTP服务时,会指定某些目录向公众开放,允许匿名存取。系统中的其余目录则处于隐匿状态。作为一种安全措施,大多数匿名FTP主机都允许用户从其下载文件,而不允许用户向其上载文件,也就是说,用户可将匿名FTP主机上的所有文件全部拷贝到自己的机器上,但不能将自己机器上的任何一个文件拷贝至匿名FTP主机上。即使有些匿名FTP主机确实允许用户上载文件,用户也只能将文件上载至某一指定上载目录中。随后,系统管理员会去检查这些文件,他会将这些文件移至另一个公共下载目录中,供其他用户下载,利用这种方式,远程主机的用户得到了保护,避免了有人上载有问题的文件,如带病毒的文件。
作为一个Internet用户,可通过FTP在任何两台Internet主机之间拷贝文件。但是,实际上大多数人只有一个Internet帐户,FTP主要用于下载公共文件,例如共享软件、各公司技术支持文件等。 Internet上有成千上万台匿名FTP主机,这些主机上存放着数不清的文件,供用户免费拷贝。实际上,几乎所有类型的信息,所有类型的计算机程序都可以在Internet上找到。这是Internet吸引我们的重要原因之一。
匿名FTP使用户有机会存取到世界上最大的信息库,这个信息库是日积月累起来的,并且还在不断增长,永不关闭,涉及到几乎所有主题。而且,这一切是免费的。
匿名FTP是Internet网上发布软件的常用方法。Internet之所以能延续到今天,是因为人们使用通过标准协议提供标准服务的程序。像这样的程序,有许多就是通过匿名FTP发布的,任何人都可以存取它们。
Internet中的有数目巨大的匿名FTP主机以及更多的文件,那么到底怎样才能知道某一特定文件位于哪个匿名FTP主机上的那个目录中呢?这正是Archie服务器所要完成的工作。Archie将自动在FTP主机中进行搜索,构造一个包含全部文件目录信息的数据库,使你可以直接找到所需文件的位置信息。

㈣ 用.net设计一个ftp客户端,设计界面添加什么工具

我也需要.有的朋友可以共享一份哦。

㈤ 什么是FTP客户端下载器,主要能够实现哪些功能界面大概是怎样的

FTP客户端是利用FTP协议进行下载文件的一种工具。

主要实现,与FTP服务器验证,上传文件,下载文件,断点续传等操作?

界面和迅雷类似,当然迅雷中包括FTP客户端的功能。
这种软件比较多,有CutuFTP,Filezilla,

㈥ 用ser-u建立ftp服务器的用户访问界面问题

1.作一套web服务方案,在资料上传时就把文件信息存入数据库,生成动态网页,用户用web访问。
2.先用tree命令生文件列表,编辑为ftp地址,做成静态页面。
3.很多ftp下载工具自带搜索功能,能够搜索站点下的所有文件。

QQ:271756865 欢迎和我聊天 呵呵

㈦ 什么是FTP它是怎样实现上传和下载的

尽管Telnet提供了访问远程文件的极好方法,但怎么也比不上使用自己计算机中的文件方便。如果用户想使用其它计算机上的文件,最理想的方法就是把它COPY到自己的计算机中,以便在本地计算机上操作。那么用什么方法去将远程计算机中的文件获取过来呢?FTP正是完成这项工作的工具。

FTP以它所使用的协议:文件传输协议(File Transfer Protocol)来命名的。正如其名所示:协议的任务是从一台计算机将文件传送到另一台计算机,它与这两台计算机所处的位置、联系的方式、以及使用的操作系统无关。假设两台计算机能与FTP协议对话,并且能访问INTERNET,就可以用FTP软件的命令来传输文件。对于不同的操作系统具体操作上可能会有些细微差别,但是其基本的命令结构是相同的。

FTP是个非常有用的工具,你可以在任意个可经FTP访问的公共有效的联机数据库或文档中找到你想要的任何东西。全世界现在已有1000多(96年的数据)个FTP文件服务器对所有INTERNET用户开使用,用户可以通过与INTERNET相连的计算机,把自己需要的文件传输过来。

FTP采用“客户机/服务器”方式,用户端要在自己的本地计算机上安装FTP客户程序。FTP客户程序有字符界和图形界面(如Cute FTP)两种。首先我们将研究在字符界面上如何在已有帐号(注册名和口令)的两台计算机之间传送文件,其次我们将讨论“匿名FTP”,它是一特殊服务,允许用户在没有帐户的情况下,访问公共FTP数据库。大多数公共数据库提供了匿名FTP路径,这意味着用户即使没有注册名也可以得到很多的免费文件。

㈧ 一、 编写一个简易的FTP客户端程序,要求能够通过用户名,密码以及URL地址浏览和下载FTP服务器上的资源。

java界面?纯java程序吗,还是jsp。纯java程序的话,需要引入java.net.url包。
try{getAppletContext().showDocument(new URL("http://www.163.com"),"打开位置");}
catch(Exception ex) {System.out.println("error"); }
就超链接了。
FTP连接可以写为如 ftp://用户名:密码@163.com

㈨ 求MFC编写的FTP服务器和客户端程序

我这有一个以前自学用的例子,你看看需要不?

运行程序,打开程序主界面,如图1.1所示。输入FTP服务器IP地址、服务器端口、用户名及密码,单击“快速登录”按钮,连接FTP服务器。连接成功后,设置下载文件存储目录,然后就可以上传及下载文件了。下载文件过程中,可以暂停及删除下载任务。

图1.1 FTP文件上传下载模块主窗口

在“功能选项”菜单下选择“下载后关机”命令,文件下载完成后,自动关闭计算机。

热点内容
手机配置高玩不了单机游戏怎么办 发布:2025-07-26 15:53:05 浏览:258
手机设置开机手势密码后如何解锁 发布:2025-07-26 15:39:14 浏览:39
迭代优化算法 发布:2025-07-26 15:25:45 浏览:948
东风本田买哪个配置好 发布:2025-07-26 15:10:01 浏览:765
plsql游标 发布:2025-07-26 15:09:51 浏览:127
android转字符串数组 发布:2025-07-26 15:08:05 浏览:269
实时产量编程 发布:2025-07-26 15:03:33 浏览:113
c语言汉诺塔算法 发布:2025-07-26 14:56:13 浏览:937
androidqq空间分享 发布:2025-07-26 14:27:27 浏览:724
为什么招生办公室登录密码错误 发布:2025-07-26 14:27:13 浏览:665