- 浏览: 68201 次
- 来自: ...
文章分类
最新评论
-
jyjava:
大哥你代码调试过吗
`itext 隐藏pdf工具栏 菜单栏 -
88567free:
3Q,需要这个
eclipse 相同变量的高亮 及颜色 -
whg333:
我也是不知道怎么的就弄没了,呵呵,谢了~
eclipse 相同变量的高亮 及颜色 -
尤迪安:
Thank you!
eclipse 相同变量的高亮 及颜色
import java.io.DataInputStream; import java.io.DataOutputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.OutputStream; import java.io.OutputStreamWriter; import java.net.InetAddress; import java.net.ServerSocket; import java.net.Socket; /** * 一个完整功能的FTP客户端类,其实就根据ftp协议,用套接字实现通信 */ public class FtpClient { private static final int ALL_INFO = 0; // private static final int HINT_INFO = 1; // private static final int ERROR_INFO = 2; private Socket ftpClient; private OutputStreamWriter sockWrite; private InputStreamReader sockRead; private String strRead; private int RetCode; private int igrade = ALL_INFO; public FtpClient() { } public void setInfoGrade(int igrade) { this.igrade = igrade; } /** * 登录FTP服务器 * @param UserName * @param Password * @return */ public boolean Login(String UserName, String Password) { //if (SendCommand("")) if (SendCommand("USER " + UserName)) if (SendCommand("PASS " + Password)) return true; return false; } /** * 连接FTP服务器 * @param IP * @param Port * @return */ public boolean Connect(String IP, int Port) { try { ftpClient = new Socket(IP, Port, true); if (ftpClient.isConnected() == false) return false; } catch (IOException ex) { ex.printStackTrace(); return false; } try { OutputStream os = ftpClient.getOutputStream(); sockWrite = new OutputStreamWriter(os); InputStream is = ftpClient.getInputStream(); sockRead = new InputStreamReader(is); } catch (IOException ex) { ex.printStackTrace(); return false; } return true; } /** * 重新发送命令,复位 * @return */ public boolean CanResume() { if (SendCommand("REST 100")) { PrintInfo("Ftp can Resume to Send!"); return true; } PrintInfo("System can not Resume Send!"); return false; } /** * 把FTP服务器上的文件读取到本地 * @param LocalFile 本地文件名 * @param RemFile FTP上的文件名 * @return */ public boolean DownFile(String LocalFile, String RemFile) { //this not user pasv mode to translate the data. FileOutputStream OutFile; File DescFile = new File(LocalFile); long FileLen = 0; if (CanResume()) { if (DescFile.exists()) FileLen = DescFile.length(); else try { DescFile.deleteOnExit();//delete old the file,then create // new. DescFile.createNewFile(); } catch (IOException ex6) { } SendCommand("REST " + String.valueOf(FileLen)); } try { OutFile = new FileOutputStream(DescFile, true); } catch (FileNotFoundException ex) { ex.printStackTrace(); return false; } return DownStream(OutFile, RemFile); } /** * 从FTP服务器上读取文件,存为文件输出流,输出 */ public boolean DownStream(OutputStream outs, String RemFile) { ServerSocket SvrSocket; if (!SendCommand("TYPE I")) return false; InetAddress Addr = ftpClient.getLocalAddress(); String strAddr = Addr.getHostAddress(); try { SvrSocket = new ServerSocket(0); } catch (IOException ex1) { ex1.printStackTrace(); return false; } int RecvPort = SvrSocket.getLocalPort(); strAddr = strAddr.replace('.', ','); int T1 = RecvPort / 256; int T2 = RecvPort % 256; strAddr += "," + String.valueOf(T1) + "," + String.valueOf(T2); if (!SendCommand("PORT " + strAddr)) return false; if (!SendCommand("RETR " + RemFile)) return false; Socket RecvSock; try { RecvSock = SvrSocket.accept(); } catch (IOException ex2) { ex2.printStackTrace(); return false; } InputStream ins; try { ins = RecvSock.getInputStream(); byte buff[] = new byte[1024]; int iRead = 1; while (iRead > 0) { iRead = ins.read(buff); if (iRead > 0) { outs.write(buff, 0, iRead); } } outs.flush(); outs.close(); ins.close(); RecvSock.close(); SvrSocket.close(); } catch (IOException ex3) { ex3.printStackTrace(); return false; } return true; } /** * 关闭FTP连接 * */ public void DisConnect() { try { SendCommand("QUIT"); sockWrite.close(); sockRead.close(); ftpClient.close(); } catch (IOException ex) { ex.printStackTrace(); } } /** * 发送FTP命令 * @param Cmd * @return */ public boolean SendCommand(String Cmd) { if (!WriteStr(Cmd + "\r\n")) return false; if (!ReadStr()) return false; if (RetCode >= 400) return false; return true; } /** * 通过Socket接收响应值用 * @return */ public boolean ReadStr() { int Len; char[] ReadBuff = new char[1024]; try { Len = sockRead.read(ReadBuff); } catch (IOException ex) { return false; } strRead = String.valueOf(ReadBuff, 0, Len - 2);//off the \r\n // String sCode = strRead.substring(0, 3); //前三位为状态码 //修改,如果返回信息分成几次发送回来就有可能没有状态编码 try { RetCode = Integer.parseInt(strRead.substring(0, 3)); } catch(Exception e) { RetCode = 0; } PrintInfo(strRead); return strRead.length() > 0; } /** * 通过Socket发送FTP命令用 * @param Write * @return */ public boolean WriteStr(String Write) { char[] Arr = Write.toCharArray(); try { sockWrite.write(Arr); sockWrite.flush();//user the flush,than you can do the next.! OK PrintInfo(Write); } catch (IOException ex) { ex.printStackTrace(); return false; } return true; } /** * 把客户端的文件上传到FTP服务器上 * @param LocalFile * @param RemFile * @param Pasv * @return */ public boolean PutFile(String LocalFile, String RemFile) { File LFile = new File(LocalFile); long Len = LFile.length(); PrintInfo("System Len=" + Len); FileInputStream ReadFile; try { ReadFile = new FileInputStream(LocalFile); } catch (FileNotFoundException ex) { ex.printStackTrace(); return false; } return PutStream(ReadFile, RemFile); } /** * 把文件流从外部上传到FTP服务器上,存为文件名为RemFile的文件 * @param InStream * @param RemFile * @return */ public boolean PutStream(InputStream InStream, String RemFile) { ServerSocket SvrSocket; if (!SendCommand("TYPE I")){ return false; } InetAddress Addr = ftpClient.getLocalAddress(); String strAddr = Addr.getHostAddress(); strAddr = strAddr.replace('.', ','); try { SvrSocket = new ServerSocket(0); } catch (IOException ex1) { ex1.printStackTrace(); return false; } int RecvPort = SvrSocket.getLocalPort(); int T1 = RecvPort / 256; int T2 = RecvPort % 256; strAddr += "," + String.valueOf(T1) + "," + String.valueOf(T2); boolean bport = SendCommand("PORT " + strAddr); if (!bport){ System.out.println("...........port::"+strAddr+" "+bport); return false; } boolean bstor = SendCommand("STOR " + RemFile); if (!bstor){ System.out.println("...........STOR::"+RemFile+" "+bstor); return false; } Socket RecvSock; DataOutputStream writer; try { RecvSock = SvrSocket.accept(); writer = new DataOutputStream(RecvSock.getOutputStream()); } catch (IOException ex2) { ex2.printStackTrace(); return false; } byte Buff[] = new byte[1024]; int iRead = 1; try { while (iRead > 0) { iRead = InStream.read(Buff); if (iRead > 0) { writer.write(Buff, 0, iRead); } } writer.flush(); writer.close(); InStream.close(); RecvSock.close(); SvrSocket.close(); } catch (IOException e) { e.printStackTrace(); return false; } //if (!SendCommand("")) //return false; PrintInfo("up load the file finish!"); return true; } /** * 设置FTP中的路径 * @param Dir * @return */ public boolean SetCurDir(String Dir) { return SendCommand("CWD " + Dir); } /** * 获取FTP中的当前路径 * @return */ public String GetCurDir() { if (!SendCommand("PWD ")) return null; else { int Pos = strRead.indexOf("\""); int Pos2 = strRead.indexOf("\"", Pos + 1); String Dir = strRead.substring(Pos + 1, Pos2); return Dir; } } /** * 在FTP主目录中创建目录 * @param Dir * @return */ public boolean MkDir(String Dir) { if (SendCommand("MKD " + Dir)) return true; else{ System.out.println("........MKDIR FAILD!"); return false; } } /** * 删除FTP上的目录 * @param Dir * @return */ public boolean RmDir(String Dir) { if (SendCommand("RMD " + Dir)) return true; else return false; } /** * 修改FTP上的文件名 * @param Old * @param New * @return */ public boolean ReName(String Old, String New) { if (SendCommand("RNFR " + Old)) return SendCommand("RNTO " + New); return false; } /** * 删除FTP上的文件 * @param File * @return */ public boolean DelFile(String File) { return SendCommand("DELE " + File); } /** * 显示FTP主目录上的文件目录和文件名称 * @param ListCmd * @return */ public String[] ListFile(String ListCmd) { StringBuffer sbDir = new StringBuffer(); ServerSocket SvrSocket; if (!SendCommand("TYPE A")) return null; InetAddress Addr = ftpClient.getLocalAddress(); String strAddr = Addr.getHostAddress(); try { SvrSocket = new ServerSocket(0); } catch (IOException ex1) { ex1.printStackTrace(); return null; } int RecvPort = SvrSocket.getLocalPort(); strAddr = strAddr.replace('.', ','); int T1 = RecvPort / 256; int T2 = RecvPort % 256; strAddr += "," + String.valueOf(T1) + "," + String.valueOf(T2); Socket RecvSock; if (!SendCommand("PORT " + strAddr)) return null; SendCommand("LIST " + ListCmd); try { RecvSock = SvrSocket.accept(); } catch (IOException ex2) { ex2.printStackTrace(); return null; } DataInputStream dataRead; try { dataRead = new DataInputStream(RecvSock.getInputStream()); } catch (IOException ex3) { ex3.printStackTrace(); return null; } byte Buff[] = new byte[1024]; int iRead = 1; try { while (iRead > 0) { iRead = dataRead.read(Buff); if (iRead > 0) { sbDir.append(new String(Buff, 0, iRead)); } } dataRead.close(); RecvSock.close(); SvrSocket.close(); } catch (IOException ex4) { ex4.printStackTrace(); return null; } if (!SendCommand("NOOP")) return null; return (sbDir.toString()).split("\r\n"); } /** * 设置信息输出级别 * 0:输出所有信息 * 1:只输出提示信息 * 2:只输出错误信息 */ private void PrintInfo(String sInfo) { if (igrade == 0) { System.out.println(sInfo); } } }
发表评论
-
SAX解析xml
2011-03-13 18:13 599import java.io.FileInputStream; ... -
dom4j解析xml
2011-02-26 16:15 995import java.io.StringReader; ... -
java sax动态生成xml,大量数据时、防止内存溢出
2011-02-18 14:39 2577import java.io.File; import ... -
java dom方法生成xml,少量数据时,可以使用
2011-02-17 15:34 1349import java.io.FileOutputStr ... -
BigDecimal
2010-12-07 20:14 2510BigDecimal的应用: package com.p ... -
`itext 隐藏pdf工具栏 菜单栏
2010-07-07 23:10 2936package example.iText; impor ... -
图片缩放
2008-06-10 12:00 738private BufferedImage reSizeIma ... -
jar扩展包位置
2009-02-05 17:10 973当你需要外部包时,把它放在jdk\jre\ext文件夹中就行了 ... -
javamail 发送邮件 乱码处理
2009-03-19 10:45 986import java.io.UnsupportedEnc ... -
读取资源文件
2009-03-20 12:35 684import java.io.IOException; im ... -
反射无参方法
2009-08-05 16:00 771import java.io.File; import ja ... -
BASE64Encoder
2009-08-06 09:39 2031package com.avetti.util; /** ... -
java 知识点
2009-08-18 09:25 770Ljava.lang.String 表示一个 ... -
将对象保存到文件
2009-09-01 10:39 991从文件读取对象 /** * get file p ... -
将数据导出到excel与日期格式的设置
2009-09-01 11:54 2022//将数据导出到excel private HSSFWork ... -
下载文件
2009-09-01 13:05 944//从站点上下载文件 public File downloa ... -
日期计算与格式化
2009-09-01 13:12 810import java.util.Calendar; imp ... -
在JList或者JTable的中加入checkbox
2009-12-30 22:56 1286public class RadioButtonPan ... -
Java 位运算符
2009-12-31 11:13 820Java定义的位运算(bitwiseoperators)直 ... -
将文件夹中的文件压缩到zip
2010-02-05 11:00 1206import java.util.zip.ZipEntry; ...
相关推荐
这是一个FTP客户端,具有FTP客户常见的功能。如果用本FTP客户端登录某个FTP服务器,则先必须申请一个FTP空间,申请FTP空间时,它会给你一个FTP主机地址、用户名称、用户密码。 测试步骤: 1、项目编译并运行。 2、...
在这个基于 lwip 的 FTP 客户端代码实例中,我们主要关注如何在 ucOS 操作系统环境下,利用 lwip(Lightweight IP)库来实现 FTP 客户端的功能,以便从远程服务器下载更新程序到嵌入式设备的闪存中。 lwip 是一个...
FTP客户端用于连接到FTP服务器,执行上传、下载、列举目录、改变工作目录等操作。在QT5.0中实现FTP客户端,主要涉及以下知识点: 1. **QNetworkAccessManager**:这是QT5的核心类,用于处理所有类型的网络请求。...
在这个场景中,我们讨论的是一个基于C语言编写的Linux版本FTP客户端源代码。这个客户端是多年前作为编程练习而创建的,具备基本的FTP命令功能,支持主动模式(PORT)和被动模式(PASV)连接。 **FTP客户端基础** ...
FTP客户端绿色版安装包是一种无需正式安装即可使用的文件传输协议(FTP)客户端工具。FTP是Internet上用于在不同计算机之间交换文件的标准协议,而“绿色版”指的是这种软件不需通过传统的安装步骤,只需解压即可...
FTP 客户端的编码 FTP 客户端是指可以与 FTP 服务器进行交互的客户端应用程序,通过 FTP 协议,用户可以上传、下载文件、创建目录、删除文件等。FTP 客户端的编码是指使用某种编程语言来实现 FTP 客户端的开发过程...
FTP客户端是网络上进行文件传输的一种标准协议,它允许用户从远程服务器上获取或向其发送文件。在本项目中,我们关注的是使用QT 4.8.6框架实现的FTP客户端。QT是一个流行的跨平台应用程序开发框架,支持C++语言,...
这是一个基于C语言的FTP客户端设计,使用C、C、C++和C++语言开发,包含557个文件。主要文件类型包括111个CMake文件、72个Make文件、54个TXT文件、40个C源文件、40个O文件、33个H文件、28个SO文件、27个BIN文件和19个...
Java作为一种通用的、面向对象的编程语言,提供了丰富的库来支持FTP客户端和服务端的实现。 在Java中,我们可以使用`java.net.Socket`类来创建客户端连接,它代表了两台机器之间的网络连接。Socket编程是基于TCP/IP...
FTP客户端是实现FTP协议的应用程序,允许用户连接到FTP服务器并执行上传、下载和其他相关操作。在这个场景中,我们讨论的是一个实现了FTP客户端功能的代码库。 FTP客户端的核心功能包括: 1. **连接与认证**:...
FTP客户端是一种用于与远程服务器进行文件传输的应用程序,它基于FTP(File Transfer Protocol)协议,允许用户上传、下载、管理远程服务器上的文件。在给定的压缩包中,包含了一个已经封装好的FTP客户端类,这使得...
FTP是互联网上用于在不同计算机之间交换文件的标准协议,而FTP客户端则是与FTP服务器交互的软件工具。 FTP客户端的核心功能包括: 1. **连接与断开**:客户端需要能够连接到指定的FTP服务器,通常通过提供服务器的...
FTP客户端是网络应用程序的一种,主要用于通过FTP(File Transfer Protocol,文件传输协议)协议与远程服务器进行文件的上传和下载操作。在本项目中,我们有一个名为"FTP.cpp"的源码文件,它构成了FTP客户端的核心...
汉化免费FTP客户端软件汉化免费FTP客户端软件汉化免费FTP客户端软件汉化免费FTP客户端软件汉化免费FTP客户端软件汉化免费FTP客户端软件汉化免费FTP客户端软件汉化免费FTP客户端软件汉化免费FTP客户端软件汉化免费FTP...
Java FTP客户端源代码是用于通过Java编程语言与FTP(文件传输协议)服务器进行交互的程序。FTP是一种在互联网上常用的标准文件传输协议,允许用户上传、下载和管理远程服务器上的文件。Java提供了一系列的API,如`...
1.实现一个图形用户界面的FTP客户端。 2.功能: 2.1 配置使用IIS的FTP服务器; 2.2 客户端发出各种操作命令;至少实现conn(连接)、list(列示文件)、retr(下载)、store(上载)的功能。 2.3 接收服务器的...
1.实现一个图形用户界面的FTP客户端。 2.功能: 2.1 配置使用IIS的FTP服务器; 2.2 客户端发出各种操作命令;至少实现conn(连接)、list(列示文件)、retr(下载)、store(上载)的功能。 2.3 接收服务器的操作...
在本文中,我们将深入探讨如何使用VC++来实现一个FTP客户端。FTP(File Transfer Protocol)是一种用于在网络上进行文件传输的标准协议。通过FTP客户端,用户可以连接到远程服务器,执行文件的上传、下载以及目录的...
QT5.7 FTP客户端是一个基于Qt库开发的用于FTP文件传输的应用程序,它支持基本的FTP操作,如单个文件的上传和下载,以及服务器端文件的删除功能。这个项目可能是一个独立的、轻量级的工具,适用于需要快速进行FTP操作...
在Windows操作系统中,使用C++编程语言开发FTP客户端是一项常见的任务,尤其对于那些需要高度定制功能或高效性能的应用来说。VC++(Visual C++)是微软提供的一个强大的C++开发工具集,它包含了一个集成开发环境...