首页 > 代码库 > java socket 发送文件
java socket 发送文件
客户端:
package tt;import java.io.DataOutputStream;import java.io.File;import java.io.FileInputStream;import java.net.InetSocketAddress;import java.net.Socket;public class ClientTcpSend { public static void main(String[] args) { int length = 0; byte[] sendByte = null; Socket socket = null; DataOutputStream dout = null; FileInputStream fin = null; try { try { socket = new Socket(); socket.connect(new InetSocketAddress("127.0.0.1", 33456),10 * 1000); dout = new DataOutputStream(socket.getOutputStream()); File file = new File("E:\\TU\\DSCF0320.JPG"); fin = new FileInputStream(file); sendByte = new byte[1024]; dout.writeUTF(file.getName()); while((length = fin.read(sendByte, 0, sendByte.length))>0){ dout.write(sendByte,0,length); dout.flush(); } } catch (Exception e) { } finally{ if (dout != null) dout.close(); if (fin != null) fin.close(); if (socket != null) socket.close(); } } catch (Exception e) { e.printStackTrace(); } }}
服务端:
package test;import java.io.DataInputStream;import java.io.File;import java.io.FileOutputStream;import java.io.IOException;import java.net.ServerSocket;import java.net.Socket;public class ServerTcpListener implements Runnable { @Override public void run() { } public static void main(String[] args) { try { final ServerSocket server = new ServerSocket(33456); Thread th = new Thread(new Runnable() { @Override public void run() { while (true) { try { System.out.println("开始监听。。。"); Socket socket = server.accept(); System.out.println("有链接"); receiveFile(socket); } catch (Exception e) { e.printStackTrace(); } } } }); th.run(); } catch (Exception ex) { ex.printStackTrace(); } } public static void receiveFile(Socket socket) throws IOException { byte[] inputByte = null; int length = 0; DataInputStream din = null; FileOutputStream fout = null; try { din = new DataInputStream(socket.getInputStream()); fout = new FileOutputStream(new File("E:\\"+din.readUTF())); inputByte = new byte[1024]; System.out.println("开始接收数据..."); while (true) { if (din != null) { length = din.read(inputByte, 0, inputByte.length); } if (length == -1) { break; } System.out.println(length); fout.write(inputByte, 0, length); fout.flush(); } System.out.println("完成接收"); } catch (Exception ex) { ex.printStackTrace(); } finally { if (fout != null) fout.close(); if (din != null) din.close(); if (socket != null) socket.close(); } }}
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。