loading黑马程序员之网络编程:文件传输(3-2)
来源:互联网 发布:windows找不到exe文件 编辑:程序博客网 时间:2024/05/16 14:55
package com.heima.net;import java.io.BufferedInputStream;import java.io.BufferedOutputStream;import java.io.BufferedReader;import java.io.File;import java.io.FileInputStream;import java.io.IOException;import java.io.InputStreamReader;import java.net.Socket;public class TcpUploadImgClient {public static void main(String[] args) {try {Socket socket = new Socket("127.0.0.1", 10003);new Thread(new ImgRead(socket)).start();new Thread(new ImgWrite(socket)).start();} catch (Exception e) {e.printStackTrace();}}}class ImgRead implements Runnable {private Socket socket;public ImgRead(Socket socket) {this.socket = socket;}@Overridepublic void run() {try {BufferedReader br = new BufferedReader(new InputStreamReader(socket.getInputStream()));String line = null;while ((line = br.readLine()) != null) {System.out.println("服务器" + socket.getInetAddress().getHostName()+ "端口:" + socket.getPort() + "发来了报文:"+line);}} catch (IOException e) {e.printStackTrace();}}}class ImgWrite implements Runnable {private Socket socket;public ImgWrite(Socket socket) {this.socket = socket;}@Overridepublic void run() {BufferedInputStream bis = null;BufferedOutputStream bos = null;try {bis = new BufferedInputStream(new FileInputStream(new File("1.jpg")));bos = new BufferedOutputStream(socket.getOutputStream());byte[] buf = new byte[1024];int len = 0;while((len = bis.read(buf))!=-1){bos.write(buf, 0, len);bos.flush();}//定义标记,告诉服务器,文件已写完socket.shutdownOutput();//socket.close();} catch (Exception e) {e.printStackTrace();}finally{try {bis.close();} catch (Exception e) {e.printStackTrace();}}}}
package com.heima.net;import java.io.BufferedInputStream;import java.io.BufferedOutputStream;import java.io.File;import java.io.FileOutputStream;import java.io.PrintWriter;import java.net.ServerSocket;import java.net.Socket;public class TcpUploadImgServer {public static void main(String[] args) {try {ServerSocket ss = new ServerSocket(10004);while(true){Socket socket = ss.accept();new Thread(new ImgServerRead(socket)).start();}} catch (Exception e) {e.printStackTrace();}}}class ImgServerRead implements Runnable {private Socket socket;public ImgServerRead(Socket socket) {this.socket = socket;}@Overridepublic void run() {BufferedInputStream bis = null;BufferedOutputStream bos = null;try {bis = new BufferedInputStream(socket.getInputStream());String ip = socket.getInetAddress().getHostName();int count = 0;File file = new File(ip+".jpg");//如果文件存在while(file.exists()){ file = new File(ip+"("+(++count)+")"+".jpg");}bos = new BufferedOutputStream(new FileOutputStream(file));PrintWriter out = new PrintWriter(socket.getOutputStream(),true);byte[] buf = new byte[1024];int len = 0;while ((len = bis.read(buf)) != -1) {bos.write(buf, 0, len);bos.flush();}out.println("文件复制完毕");} catch (Exception e) {e.printStackTrace();} finally {try {bos.close();socket.close();} catch (Exception e) {e.printStackTrace();}}}}
0 0
- loading黑马程序员之网络编程:文件传输(3-2)
- loading黑马程序员之网络编程:聊天(3-1)
- loading黑马程序员之高级编程:泛型(4-3)
- loading黑马程序员之高级编程:反射(4-2)
- loading黑马程序员之IO键盘输入(2-3)
- loading黑马程序员之高级编程:枚举(4-1)
- loading黑马程序员之高级编程:代理(4-4)
- 黑马程序员之网络编程
- 黑马程序员之网络编程
- 黑马程序员之 --- 网络编程
- 黑马程序员之网络编程
- 黑马程序员之网络编程
- 黑马程序员之网络编程
- loading黑马程序员之IO字节流(2-2)
- loading黑马程序员之IO字符流(2-1)
- loading黑马程序员之银行业务调度系统(5-2)
- loading黑马程序员之IOFile(2-4)
- 黑马程序员----网络编程(2)
- HTTP Live Streaming直播(iOS直播)技术分析与实现
- 【转】回溯法
- 杭电 1006 AC 仅思路无代码
- 如何构造任意阶幻方
- 单调队列
- loading黑马程序员之网络编程:文件传输(3-2)
- 筛法求素数
- 【转】C/C++中的时序点和副作用
- ACM比赛经验
- SPFA算法
- C_C++的union的使用总结 (转…
- 关于Tomcat-服务器容器的默…
- Functional Programming
- 钳位电路