首先,你的网络必须是安全的,否则,任何用户都可以远程对计算机有文件访问修改的权限其次,你要实现这种传输的话,你比须有一个服务器,你说的这种东西有点像QQp2p的,那种,那么你不妨做一个session,用套接字的方法实现。在就是看一些关于协议的书籍一般的协议用c实现,你可以用java描述就可以了,很简单的。没有你想象的那么难
解决方案 »
- java IO问题
- hibernate 一些简单问题困扰了我!
- java 编译选项如何更改,例如增加一些告警提示
- 这么简单的程序出的是什么问题呀!
- 按钮监听里,调用某个函数中包含有sleep(1000)然后重设label的出现问题.
- JAVA中byte型-128如何表示!!
- 诅咒rational rose,可怜我一天画的图阿!
- 有谁能给一个比较详细点的十字链表java版的演示代码
- 在JAVA网络编程中,如何知道本地的某个端口是否已经被点用?
- 我在调用Constructor的时候,抛出个异常,看不太懂
- 在一个panel中放有按钮,如何在点击按钮的时候也触发panel的某一个事件??
- 菜鸟求助, 编写的第五个程序中碰到的五个难题.
import sun.net.*;
import java.io.*;
import javax.swing.*;
import java.util.*;
public class FTP { public FTP() {
} private static FtpClient m_client; protected static void disconnect()
{
if (m_client != null)
{
try
{
m_client.closeServer();
}
catch (IOException ex)
{
} m_client = null;
}
} protected static boolean connect(String sHost, String user,
String password ,String sDir)
{
try
{
m_client = new FtpClient(sHost);
m_client.login(user, password);
m_client.cd(sDir);
m_client.binary();
}
catch (Exception ex)
{
return false;
} return true;
} protected static boolean putFiletoServer(String m_sLocalFile,String m_sHostFile)
{
if (m_sLocalFile.length()==0)
{
return false;
} byte[] buffer = new byte[10240]; try
{
File f = new File(m_sLocalFile);
int size = (int)f.length();
FileInputStream in = new FileInputStream(m_sLocalFile);
OutputStream out = m_client.put(m_sHostFile); int counter = 0;
while(true)
{
int bytes = in.read(buffer);
if (bytes < 0)
break;
out.write(buffer, 0, bytes);
counter += bytes;
} out.close();
in.close();
}
catch (Exception ex)
{
return false;
} return true;
}
public static boolean putFile(String pathname,String ftpServer, String ftpUser,
String ftpPasswd, String ftpPath)
{
if (!connect(ftpServer,ftpUser,ftpPasswd,ftpPath))
{
return false;
} int pos = pathname.lastIndexOf("/");
int len = pathname.length(); String filename = pathname.substring(pos+1,len); if (!putFiletoServer(pathname,filename))
{
return false;
} disconnect();
return true;
} /* sample */
/*
public static void main(String[] args)
{
boolean b = putFile("1.txt","192.168.2.79","dexin","123456","html");
System.out.println(b);
}
*/
}
private Socket socketClient;
private int counter;
private static String initDir;
public static void main(String[] args){
if(args.length != 0) {
initDir = args[0];
}else{ initDir = "c:";} try{
System.out.println("ftp server started!");
//监听21号端口
ServerSocket s = new ServerSocket(21);
for(;;){
//接受客户端请求
Socket incoming = s.accept();
//创建服务线程
new ftpServer().start();
}
}catch(Exception e){}
}
IO流转化为Byte[]数组,然后帮定指定ip和端口,以tcp/ip或者udp协议,发送数据包给另一端.如果文件过大就在读取上加while循环.
ftp服务端--rfc协议的所有命令!!;如果在linux下,又要支持linux命令!!