读书人

心得14-网络编程5-Tcp文件下传与输出

发布时间: 2012-09-19 13:43:54 作者: rapoo

心得14--网络编程5-Tcp文件上传与输出

12.0.0.1代表本机IP。不要有中文路径,但是可以有中文文件名。中文路径会报错

客户端:

packagecom.TcpFile;

importjava.io.BufferedReader;

importjava.io.FileReader;

importjava.io.IOException;

importjava.io.InputStreamReader;

importjava.io.PrintWriter;

importjava.net.Socket;

publicclass UpLoadClient {

/**

* 客户端,把服务器上传文件

* @param args

* @throws IOException

*/

publicstaticvoid main(String[]args)throws IOException {

Socket s = new Socket("127.0.0.1",8888); //12.0.0.1代表本机IP

BufferedReader br = new BufferedReader(new FileReader("d:\\中搜.txt"));//不要有中文路径,但是可以有中文文件名。中文路径会报错

PrintWriter pwOut = new PrintWriter(s.getOutputStream(),true);

String line = null;

while((line=br.readLine())!=null) {

pwOut.println(line);

}

s.shutdownOutput(); //关闭输出流,为了告诉服务器该文件已经读完即全部上传

//收到来自服务器端的反馈信息

BufferedReader brin = new BufferedReader(new InputStreamReader(s.getInputStream()));

System.out.println(brin.readLine());

br.close();

s.close();

}

}

服务器端:

packagecom.TcpFile;

importjava.io.BufferedReader;

importjava.io.FileWriter;

importjava.io.IOException;

importjava.io.InputStreamReader;

importjava.io.PrintWriter;

importjava.net.ServerSocket;

importjava.net.Socket;

publicclass UpLoadServer {

/**

* 服务器端,用来让用户从其上下载文件

* @param args

* @throws IOException

*/

publicstaticvoid main(String[]args)throws IOException {

ServerSocket ss = new ServerSocket(8888);

Socket s = ss.accept();

System.out.println(s.getInetAddress().getHostAddress()+"已连接!"); //获得客户端Ip用来提示服务端

BufferedReader brin = new BufferedReader(new InputStreamReader(s.getInputStream()));

PrintWriter pw = new PrintWriter(new FileWriter("d:\\1.txt"),true);

String line = null;

while((line=brin.readLine())!=null) {

pw.println(line);

}

// 给客户端回馈信息

PrintWriter pwOut = new PrintWriter(s.getOutputStream(),true);

pwOut.println("发送成功!!");

pw.close();

s.close();

ss.close();

}

}

读书人网 >编程

热点推荐