Java学习笔记——Socket实现文件传输
Posted Tomas曼
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java学习笔记——Socket实现文件传输相关的知识,希望对你有一定的参考价值。
我越是逃离,却越是靠近你。
我越是背过脸,却越是看见你。
我从你开始,
我在你结束。
需求:实现局域网下socket传输文件.
客户端步骤:
1、建立与服务器的连接
2、创建client输出流
3、创建输入流,绑定本地文件
4、读取文件后输出给服务器
服务器端步骤:
1、启动服务器
2、创建accept输入流
3、创建输出流绑定本地文件
4、读取客户端信息写入本地文件
1.字节流传输文件.
1 public class Client { 2 3 public static void main(String[] args) throws IOException { 4 Socket client = new Socket("192.168.0.112", 50000); 5 OutputStream os = client.getOutputStream(); 6 FileInputStream fis = new FileInputStream("/home/yanshaochen/public/2017-05-06 15-12-02屏幕截图.png"); 7 byte[] bytes = new byte[1024]; 8 int data; 9 while((data = fis.read(bytes))!= -1){ 10 os.write(bytes, 0, data); 11 } 12 fis.close(); 13 client.close(); 14 System.out.println("发送成功!"); 15 } 16 }
1 public class Server { 2 3 public static void main(String[] args) throws Exception { 4 ServerSocket server = new ServerSocket(50000); 5 System.out.println("listening.."); 6 Socket accept = server.accept(); 7 InputStream is = accept.getInputStream(); 8 FileOutputStream fos = new FileOutputStream("d:\\download\\屏幕截图.png"); 9 byte[] bytes = new byte[1024]; 10 int data; 11 while((data = is.read(bytes))!=-1){ 12 fos.write(bytes, 0, data); 13 } 14 fos.close(); 15 server.close(); 16 }
2.字符流传输文件txt.
1 public class Client { 2 3 public static void main(String[] args) throws IOException { 4 5 Socket client = new Socket("192.168.0.112", 50000); 6 OutputStream os = client.getOutputStream(); 7 Reader fr = new FileReader("/home/yanshaochen/public/zfsm.txt"); 8 BufferedReader br = new BufferedReader(fr); 9 String buffer; 10 while((buffer = br.readLine())!= null){ 11 buffer += "\r\n"; 12 os.write(buffer.getBytes()); 13 } 14 br.close(); 15 client.close(); 16 System.out.println("发送成功!"); 17 } 18 }
1 public class Server { 2 3 public static void main(String[] args) throws Exception { 4 5 ServerSocket server = new ServerSocket(50000); 6 System.out.println("listening.."); 7 Socket accept = server.accept(); 8 InputStream is = accept.getInputStream(); 9 FileWriter fw = new FileWriter("d:\\download\\zfsm.txt"); 10 byte[] bytes = new byte[1024]; 11 int data; 12 while((data = is.read(bytes)) != -1){ 13 fw.write(new String(bytes, 0, data)); 14 } 15 fw.close(); 16 server.close(); 17 } 18 19 }
以上是关于Java学习笔记——Socket实现文件传输的主要内容,如果未能解决你的问题,请参考以下文章
python 3.x 学习笔记13 (socket_ssh and socket_文件传输)