- 浏览: 137133 次
- 性别:
- 来自: 郑州
文章分类
最新评论
-
Ken艹小哲:
太赞了 哥们 加扣
猜数字问题的最少步数算法. -
chenyuan122912:
...
解决AS3 Socket编程中最令人头疼的问题 -
hyx0914:
有源代码打包下载的吗?
Flex地图分块加载的实现 -
tianhai110:
非常有价值的 测试总结
时间效率,Timer和EnterFrame在FP 10.1之后测试和建议 -
763675117:
你好,fengxiangpiao,看了你的文档,我的需求和你差 ...
解决MovieClip打印问题 转
Java代码:
FTPClient.java
package org;
import java.io.BufferedInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.Reader;
import java.io.Writer;
import java.net.Socket;
import java.util.ArrayList;
import java.util.List;
import java.util.StringTokenizer;
public class FtpClient ...{
public static final int DEFAULT_PORT = 1968;
private static int print(Reader in) throws IOException ...{
int c;
int prev = 0, current = 0;
int result = 0;
int count = 0, k1 = 0, k2 = 0, k3 = 0;
while (prev != ' ' && current != ' ') ...{
prev = current;
c = in.read();
current = c;
if (count < 3) ...{
switch (count) ...{
case 0:
k1 = current - '0';
break;
case 1:
k2 = current - '0';
break;
case 2:
k3 = current - '0';
break;
}
}
count++;
System.out.write(current);
}
result = k1 * 100 + k2 * 10 + k3;
return result;
}
private static void printData(Reader in) throws IOException ...{
int c = 0;
while ((c = in.read()) != -1) ...{
System.out.print((char) c);
}
System.out.println();
}
private static void inputCommand(Writer out, String command) throws IOException ...{
out.write(command);
out.write(" \r\n");
out.flush();
}
public static void main(String[] args) ...{
String hostname = "192.168.1.101";
Socket commandConn = null;
Socket dataConn = null;
try ...{
commandConn = new Socket(hostname, DEFAULT_PORT);
Writer out = new OutputStreamWriter(commandConn.getOutputStream(),
"8859_1");
InputStream raw = commandConn.getInputStream();
BufferedInputStream buffer = new BufferedInputStream(raw);
InputStreamReader commandIn = new InputStreamReader(buffer,
"8859_1");
System.out.println("login in");
int i = print(commandIn);// 220
inputCommand(out, "USER winters");
System.out.println("USER winters");
i = print(commandIn);// 331
inputCommand(out, "PASS 123456");
System.out.println("PASS 123456");
i = print(commandIn);// 230
inputCommand(out, "SYST");
System.out.println("SYST");
i = print(commandIn);// 215
inputCommand(out, "PWD");
System.out.println("PWD");
i = print(commandIn);// 257
inputCommand(out, "TYPE A");
System.out.println("TYPE A");
i = print(commandIn);// 200
inputCommand(out, "PASV");
System.out.println("PASV");
int port = getPortNumber(commandIn);
dataConn = new Socket(hostname, port);
BufferedInputStream dataBuffer = new BufferedInputStream(dataConn
.getInputStream());
InputStreamReader dataIn = new InputStreamReader(dataBuffer,
"8859_1");
System.out.println("Connected " + hostname + " on " + port);
/** *//**
* LIST
*/
inputCommand(out, "LIST");
System.out.println("LIST");
System.out.print("commandIn : ");
i = print(commandIn);// 150
System.out.print("dataIn : ");
printData(dataIn);// abc
i = print(commandIn);// 226
/** *//** ************************************* */
inputCommand(out, "PASV");
System.out.println("PASV");
port = getPortNumber(commandIn);
dataConn = new Socket(hostname, port);
dataBuffer = new BufferedInputStream(dataConn.getInputStream());
dataIn = new InputStreamReader(dataBuffer, "8859_1");
System.out.println("Connected " + hostname + " on " + port);
/** *//**
* RETR
*/
inputCommand(out, "RETR 1.txt");
System.out.println("RETR 1.txt");
System.out.print("commandIn : ");
i = print(commandIn);// 150
System.out.print("dataIn : ");
printData(dataIn);// abc
i = print(commandIn);// 226
} catch (IOException e) ...{
System.err.println(e);
} finally ...{
try ...{
if (commandConn != null)
commandConn.close();
if (dataConn != null)
dataConn.close();
} catch (IOException e) ...{
System.err.println(e);
}
}
}
private static int getPortNumber(InputStreamReader in) throws IOException ...{
int c;
int prev = 0, current = 0;
boolean start = false;
ByteArrayOutputStream out = new ByteArrayOutputStream();
while (prev != ' ' && current != ' ') ...{
prev = current;
c = in.read();
current = c;
if (prev == '(')
start = true;
if (current == ')')
start = false;
if (start)
out.write(current);
// System.out.println("==" + out.toString() + "==");
System.out.write(current);
}
String ipWithPort = out.toString();
StringTokenizer stk = new StringTokenizer(ipWithPort, ",");
List list = new ArrayList();
while (stk.hasMoreTokens()) ...{
list.add(stk.nextToken());
}
String[] str = (String[]) list.toArray(new String[list.size()]);
int a = Integer.parseInt(str[4]);
int b = Integer.parseInt(str[5]);
int port = a * 256 + b;
// System.out.println("debug: port == " + port);
return port;
}
}
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/starshus/archive/2007/01/01/1471724.aspx
发表评论
-
在Eclipse中用JDBC连接Sql Server 2005总结
2010-12-13 11:01 779* 最近因为开发活动需要,用上了Eclipse,并要求使用精简 ... -
Java文件操作详解
2010-12-11 15:10 636输入输出流 在Java中, ... -
如何衔接不同文件中的swing组件转
2010-11-11 21:47 784软件编程牛人网 2005年2月2日3:43:23 问题是: ... -
一个简单的IP地址管理系统源代码
2010-11-11 21:46 748软件编程牛人网 import java.io.Buffere ... -
利用继承高效率写程序转
2010-11-11 21:45 670软件编程牛人网 2005年2月3日3:41:41 问题:如 ... -
Java游戏学习转
2010-11-11 21:44 701软件编程牛人网 这几 ... -
70个JAVA问答
2010-11-09 15:20 915软件编程牛人网 1. ... -
提升JSP应用程序的七大绝招转
2010-11-09 15:17 627软件编程牛人网 你时常被客户抱怨JSP页面响应 ... -
java读取操作系统环境变量
2010-11-04 16:06 683在家上网赚钱更容易 /** 文件名:SysP ... -
JAVA中浅复制与深复制
2010-11-04 15:52 575在家上网赚钱更容易 1.浅复制与深复制概念⑴浅复制(浅克 ... -
Java网络编程从入门到精通(29):服务端Socket的选项
2010-11-03 12:11 669在家上网赚钱更容易 ServerSocket类有以下三个选项 ... -
Java网络编程从入门到精通(30):定制accept方法
2010-11-03 12:10 637在家上网赚钱更容易 ... -
Java网络编程从入门到精通(31):非阻塞I/O简介
2010-11-03 12:08 709在家上网赚钱更容易 在网络应用中,一般可以采用同步I ... -
Java网络编程从入门到精通(32):一个非阻塞I/O的例子
2010-11-03 12:07 697在家上网赚钱更容易 为了使读者更好地理解非阻塞I/O ... -
Java网络编程从入门到精通(33):非阻塞I/O的缓冲区(Buffer)
2010-11-03 12:05 575在家上网赚钱更容易 如果将同步I/O方式下的数据传输 ... -
Java网络编程从入门到精通(34):读写缓冲区中的数据---使用get和put方法按顺序读写单个数据
2010-11-03 12:03 597在家上网赚钱更容易 ... -
jsp 图形验证码 IllegalStateException 异常
2010-11-02 18:27 672在家上网赚钱更容易 最近用了jsp做了一个简单的图形验证码, ...
相关推荐
根据RFC文档的描述,FTP的协议设计应该简单且易于实现,同时满足不同类型用户的需求,包括大型主机、小型主机、个人工作站和远程访问控制器(TACs)。FTP协议假设用户已经具备了传输控制协议(TCP)和Telnet协议的...
RFC959是FTP协议的官方标准文档,它定义了FTP的命令和响应格式、连接管理、数据传输机制以及用户认证方式等。FTP支持两种工作模式:主动模式和被动模式。主动模式下,客户端首先建立控制连接,然后服务器主动建立...
RFC 959是FTP协议的官方规范,详细定义了FTP的命令、响应码以及交互过程。在Java中实现FTP功能,我们可以利用Java的`java.net`和`java.io`包中的类来构建客户端和服务器端的通信。 Java FTP库通常提供了许多方便的...
都是以前收集的FTP协议RFC精华,还是中文的,现在网上很难下到了 RFC1123 - 互联网主机必要条件——应用程序和支持.pdf RFC1579 - 防火墙-友好FTP.pdf RFC1635 - 怎样使用匿名FTP.pdf RFC2151 - 关于Internet和...
RFC959是FTP协议的官方规范文档,它定义了FTP协议的细节和交互过程。这篇博文提供了RFC959的中文翻译版本,对于理解FTP的工作原理和协议细节非常有帮助。 FTP协议基于TCP/IP协议栈,确保数据的可靠传输。它分为两个...
rfc959FTP传输协议2
### FTP-RFC959:理解文件传输协议的基础 FTP(File Transfer Protocol)是一种用于在网络上进行文件传输的标准网络协议,其定义在RFC959文档中。FTP的主要功能是在两个主机之间传输文件,允许用户从远程服务器下载...
### 配套资料-FTP协议的RFC-rfc0959.txt:深入解析 #### 一、引言与目标 文件传输协议(File Transfer Protocol,简称FTP)旨在实现计算机程序和数据文件在不同主机之间的共享,促进远程计算机的间接使用,通过...
文件传输协议(英文:File Transfer Protocol,简称为FTP)是用于在网络上进行文件传输的一套标准协议。它属于网络协议组的应用...FTP协议的官方标准文档是RFC959,这里有中文版和英文版两种可供下载,文档格式是PDF。
RFC959 -FTP协议官方规范文档,写FTP应用程序必读的参考资料。(英文原版)
8. SMTP(简单邮件传输协议):用于发送电子邮件,而POP3和IMAP协议则用于接收邮件。 9. FTP(文件传输协议):FTP用于在互联网上传输文件,有匿名FTP和认证FTP两种方式。 10. ICMP(因特网控制消息协议):用于...
FTP协议(文件传输协议)是一种用于在计算机网络上传递文件的标准协议,它在RFC959标准文档中被正式定义。FTP的目标在于提高文件的共享性,允许用户间接地通过程序使用远程计算机,同时确保用户在不同主机系统间存储...
Java连接RFC(Remote Function Call)是一种技术,允许Java应用程序与SAP系统进行通信,执行SAP的业务逻辑。本文将详细解析标题和描述中提到的知识点,并提供相关的编程实例。 首先,我们需要理解RFC是什么。RFC是...
以下是一个简单的Java RFC调用示例: ```java import com.sap.conn.jco.*; import com.sap.conn.jco.ext.Environment; public class SapRfcCallExample { public static void main(String[] args) { // 初始化...
rfc ftp的完整协议, 开发ftp的必读文档
【设计题目】:FTP 协议的实现 【设计目的】: 1) 加深对 TCP/IP 协议的理解。 2) 了解 FTP 协议的工作原理。 3) 掌握用 MFC 编写 FTP 协议的实现程序(也可自选工具)。 【设计任务】: 在 Visual C++6. 0 的...
RFC1445 简单网络管理协议(SNMPv2)版本 2的管理模式 RFC1454 下一代IP提议的比较 RFC1461 通过X.25多协议互连SNMP管理系统库(MIB)扩展 RFC1469 通过令牌-环局域网的IP多点传送 RFC1483 通过ATM适应层5的多协议封装 ...
### RDP协议RFC更新知识点详解 #### 一、引言 《RDP协议RFC英文文档》是一篇关于可靠数据传输协议(Reliable Data Protocol, RDP)的重要文档,该文档提出了对RDP版本1的若干更新建议。这些更新是基于在1986年和...
RFC文档是互联网标准过程的核心,它们详细描述了各种网络协议、程序和实践。 **RFC1945 - HTTP/1.0** RFC1945是HTTP/1.0版本的官方定义,发布于1996年。这个文档首次明确了HTTP的基本概念,包括请求方法(GET、...
### 知识点详解:简单邮件传输协议(SMTP) #### 一、SMTP协议概述 SMTP,即Simple Mail Transfer Protocol,简单邮件传输协议,是互联网上用于发送电子邮件的标准协议。它定义了邮件服务器如何将邮件从一台计算机...