如果写一个可以实现多线程的ftp,是不是必须从socket写

do1doer 2003-08-09 10:46:48
大家有没有用socket来实现ftp的简单例子?
...全文
95 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
icecloud 2003-08-31
  • 打赏
  • 举报
回复
http://www.enterprisedt.com

换一个包
onefox 2003-08-15
  • 打赏
  • 举报
回复
一般 thread 和runnable 结合用比较多
taolei 2003-08-15
  • 打赏
  • 举报
回复
通常情况下,每个socket连接需要两个线程。一个负责发送,一个负责接收。
do1doer 2003-08-15
  • 打赏
  • 举报
回复
extends thread 和runnable有什么区别?
do1doer 2003-08-15
  • 打赏
  • 举报
回复
谢谢.然后同一文件的多线程是怎么实现的,给个思路吧.
do1doer 2003-08-15
  • 打赏
  • 举报
回复
to Wangli:你的聊天程序是每个对话一个线程还是怎么做的,多谢赐教
star821116 2003-08-14
  • 打赏
  • 举报
回复
要用网络通信,当然要用到Socket,下面是一个实现Ftp功能的例子
转自http://www.java-cn.com,原贴见http://www.java-cn.com/technology/technology_detail.jsp?id=82
大连捷通电脑技术有限公司
王 淼
---- 在JAVA的编程中,您也许会遇到FTP方面的编程,本文就来演示如何实现它。

---- 本程序是由JBUILDER2.0来开发的,为了节约篇幅我只列出主要的三个部份。FtpList 部分是用来显示FTP服务器上的文件(附图略)。GetButton部分为从FTP服务器下传一个文件。PutButton 部分为向FTP服务器上传一个文件。别忘了在程序中还要引入两个库文件(import sun.net.*,import sun.net.ftp.*)。以下是这三部分的JAVA源程序。

---- 1)显示FTP服务器上的文件

void ftpList_actionPerformed(ActionEvent e) {
String server=serverEdit.getText();
//输入的FTP服务器的IP地址
String user=userEdit.getText();
//登录FTP服务器的用户名
String password=passwordEdit.getText();
//登录FTP服务器的用户名的口令
String path=pathEdit.getText();
//FTP服务器上的路径
try {
FtpClient ftpClient=new FtpClient();
//创建FtpClient对象
ftpClient.openServer(server);
//连接FTP服务器
ftpClient.login(user, password);
//登录FTP服务器
if (path.length()!=0) ftpClient.cd(path);
TelnetInputStream is=ftpClient.list();
int c;
while ((c=is.read())!=-1) {
System.out.print((char) c);}
is.close();
ftpClient.closeServer();//退出FTP服务器
} catch (IOException ex) {;}
}




2)从FTP服务器上下传一个文件


void getButton_actionPerformed(ActionEvent e) {
String server=serverEdit.getText();
String user=userEdit.getText();
String password=passwordEdit.getText();
String path=pathEdit.getText();
String filename=filenameEdit.getText();
try {
FtpClient ftpClient=new FtpClient();
ftpClient.openServer(server);
ftpClient.login(user, password);
if (path.length()!=0) ftpClient.cd(path);
ftpClient.binary();
TelnetInputStream is=ftpClient.get(filename);
File file_out=new File(filename);
FileOutputStream os=new
FileOutputStream(file_out);
byte[] bytes=new byte[1024];
int c;
while ((c=is.read(bytes))!=-1) {
os.write(bytes,0,c);
}
is.close();
os.close();
ftpClient.closeServer();
} catch (IOException ex) {;}
}


3)向FTP服务器上上传一个文件

void putButton_actionPerformed(ActionEvent e) {
String server=serverEdit.getText();
String user=userEdit.getText();
String password=passwordEdit.getText();
String path=pathEdit.getText();
String filename=filenameEdit.getText();
try {
FtpClient ftpClient=new FtpClient();
ftpClient.openServer(server);
ftpClient.login(user, password);
if (path.length()!=0) ftpClient.cd(path);
ftpClient.binary();
TelnetOutputStream os=ftpClient.put(filename);
File file_in=new File(filename);
FileInputStream is=new FileInputStream(file_in);
byte[] bytes=new byte[1024];
int c;
while ((c=is.read(bytes))!=-1){
os.write(bytes,0,c);}
is.close();
os.close();
ftpClient.closeServer();
} catch (IOException ex) {;}
}
}
wangli8850 2003-08-14
  • 打赏
  • 举报
回复
建议用已有的ftp包,如果自己从socket写的话,太麻烦

曾经用socket写过一个聊天的,对多线程的处理,同步等问题太麻烦了,深有体会
do1doer 2003-08-14
  • 打赏
  • 举报
回复
向服务器提交请求好象就是提交几个命令?
jouny0 2003-08-10
  • 打赏
  • 举报
回复
up
songbo_pp 2003-08-10
  • 打赏
  • 举报
回复
http://www.csdn.net/Develop/article/19%5C19020.shtm
http://www.chinajavaworld.com/bbsoffline/jinghuaforum21/1968.html
shytian 2003-08-09
  • 打赏
  • 举报
回复
可以下载sun的一个ftp包,实现起来很方便的
在ibm开发者网站的java区有文章和代码例子

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧