java socket 发送文件

王朝学院·作者佚名  2016-05-29
窄屏简体版  字體: 小  |  中  |  大  |  超大  

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(); } }}

 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
© 2005- 王朝網路 版權所有 導航