如何利用 Java 实现在网络中传送文件呢? 如何利用 Java 实现在网络中传送文件呢? (请指点方向, 谢谢!) 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 import java.net.*;import java.io.*;public class Server{ private ServerSocket server; private Socket you; private receive rec; public Server() { try { server = new ServerSocket(2007); System.out.println("服务器运行中,监听端口:2007......"); while(true) { you = server.accept(); if(you != null){System.out.println("有客户连接启动接收线程..."); new Thread(new receive(you)).start();System.out.println("接收文件内容如下: --->服务器继续监听中...");}}}catch(Exception e){System.out.println("服务端运行出错!");}}public static void main(String args[]){new Server();}}class receive implements Runnable{private File files;private DataInputStream din = null;private DataOutputStream dout = null;private Socket mySock = null;private int str = 1;public receive(Socket you){this.mySock = you;//files = new File("d:\\data.txt");}public void run(){try{din = new DataInputStream(mySock.getInputStream());dout = new DataOutputStream(mySock.getOutputStream());while(true){if((str=din.readInt()) == 0)break;System.out.println("" + din.readUTF());}clears();}catch(Exception e){System.out.println("接收出错!");}finally{clears();}}void clears(){try{dout.close();din.close();mySock.close();}catch(Exception e){System.out.println("关闭出错");} }} import java.net.*;import java.io.*;public class Client{private Socket you;SendData sends;public Client(){try{ you = new Socket("localhost",2007);System.out.println("连接服务器监听端口:2007......"); if(you != null) { System.out.println("连接成功,启动发送线程..."); new Thread(new SendData(you)).start(); System.out.println("发送完毕!关闭线程..."); }}catch(Exception e){System.out.println("服务端运行出错!");}}public static void main(String args[]){new Client();}}class SendData implements Runnable{private File files;private BufferedReader bin = null;private DataInputStream din = null;private DataOutputStream dout = null;private Socket mySock = null;private String data = "";public SendData(Socket you){this.mySock = you;files = new File("d:\\data.txt");}public void run(){try{bin = new BufferedReader(new InputStreamReader(new FileInputStream(files)));din = new DataInputStream(mySock.getInputStream());dout = new DataOutputStream(mySock.getOutputStream());while((data = bin.readLine()) != null){dout.writeInt(1);dout.writeUTF(data);}dout.writeInt(0);clears();}catch(Exception e){}finally{clears();}}void clears(){ try {bin.close();dout.close();din.close();mySock.close();}catch(Exception e){System.out.println("关闭出错");} }}也是给上面一个朋友写的支持多线程,不过是针对一个具休路径的文件,服务器方面只是显示出来大概原理就是这样,你改下,或者加个用户界面都可以,参考下 去这里看看吧:http://www.javadingle.com 最简易的socket通信,建立一个ServerSocket和一个Socket Java新手请教:如果产生一个由100个随机数字或英文字符组成字符串? 下面的bat脚本改成shell脚本怎么写 java 写入文件?? 求正则表达式 初学者问个有关 equals的问题 急救! 承蒙各位大虾了! 高手不得不进——clone()的深层复制和单层复制 MyEclipse+Hibernate3如何使用 DB Browser (在线等待)编译通过,但是运行出错,出错信息是这样的 我的jbuilder启动的时候有一个clearcase的错误是怎么回事 利用javamail如何获取邮件正文?还有为什么我的邮件主题和发件人有时会乱码呢? 初学JAVA人的担忧!?
import java.io.*;
public class Server
{
private ServerSocket server;
private Socket you;
private receive rec;
public Server()
{
try
{
server = new ServerSocket(2007);
System.out.println("服务器运行中,监听端口:2007......");
while(true)
{
you = server.accept();
if(you != null)
{
System.out.println("有客户连接启动接收线程...");
new Thread(new receive(you)).start();
System.out.println("接收文件内容如下: --->服务器继续监听中...");
}
}
}catch(Exception e){System.out.println("服务端运行出错!");}
}public static void main(String args[])
{
new Server();
}
}class receive implements Runnable
{
private File files;
private DataInputStream din = null;
private DataOutputStream dout = null;
private Socket mySock = null;
private int str = 1;
public receive(Socket you)
{
this.mySock = you;
//files = new File("d:\\data.txt");
}public void run()
{
try
{
din = new DataInputStream(mySock.getInputStream());
dout = new DataOutputStream(mySock.getOutputStream());while(true)
{
if((str=din.readInt()) == 0)
break;
System.out.println("" + din.readUTF());
}
clears();
}catch(Exception e){System.out.println("接收出错!");}
finally
{
clears();
}}void clears()
{
try
{
dout.close();
din.close();
mySock.close();
}catch(Exception e){System.out.println("关闭出错");}
}}
import java.io.*;
public class Client
{
private Socket you;
SendData sends;public Client()
{
try
{
you = new Socket("localhost",2007);
System.out.println("连接服务器监听端口:2007......");
if(you != null)
{
System.out.println("连接成功,启动发送线程...");
new Thread(new SendData(you)).start();
System.out.println("发送完毕!关闭线程...");
}
}catch(Exception e){System.out.println("服务端运行出错!");}
}public static void main(String args[])
{
new Client();
}
}class SendData implements Runnable
{
private File files;
private BufferedReader bin = null;
private DataInputStream din = null;
private DataOutputStream dout = null;
private Socket mySock = null;
private String data = "";
public SendData(Socket you)
{
this.mySock = you;
files = new File("d:\\data.txt");
}public void run()
{
try
{
bin = new BufferedReader(new InputStreamReader(new FileInputStream(files)));
din = new DataInputStream(mySock.getInputStream());
dout = new DataOutputStream(mySock.getOutputStream());
while((data = bin.readLine()) != null)
{
dout.writeInt(1);
dout.writeUTF(data);
}
dout.writeInt(0);
clears();
}catch(Exception e){}
finally
{
clears();
}}void clears()
{
try
{
bin.close();
dout.close();
din.close();
mySock.close();
}catch(Exception e){System.out.println("关闭出错");}
}}
也是给上面一个朋友写的支持多线程,不过是针对一个具休路径的文件,
服务器方面只是显示出来
大概原理就是这样,你改下,或者加个用户界面都可以,参考下
http://www.javadingle.com