java socket 发送文件
2015-06-17 17:33
393 查看
http://www.cnblogs.com/feiyun126/p/3921466.html
客户端: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.swing.JTable
- Spring与多线程
- Java Nio实现socket读写文件
- Java编程思想4读后小记
- java中ssh框架
- netbeans如何去掉竖着的红线以及在左上角标题栏目显示完整文件路径
- 欢迎使用CSDN-markdown编辑器
- java修饰符——transient
- Java图形化界面设计——布局管理器之FlowLayout(流式布局)
- java中的list排序问题
- java客户端和服务器程序
- POI 导出 java客户端 支持数据分页.
- java 原型模式之深复制与浅复制
- javabean总结
- Spring注解
- Java程序最容易犯的21种错误
- javascrip的call的使用
- Android Eclipse关联源码
- JAVA bean与XML互转的利器---XStream
- javascipt 实现继承