客户端:
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(); } } }
java socket 发送文件
时间: 2024-10-20 10:19:18