026.5 网络编程 上传图片
2018-10-19 06:30:42来源:博客园 阅读 ()
#######################################
客户端
###UploadPicClient.java public class UploadPicClient { /** * @param args * @throws IOException * @throws */ public static void main(String[] args) throws IOException { System.out.println("上传图片客户端运行......"); //1,创建socket。 Socket s = new Socket("192.168.1.223", 10007); //2,读取源图片。 File picFile = new File("tempfile\\1.jpg"); FileInputStream fis = new FileInputStream(picFile); //3,目的是socket 输出流。 OutputStream out = s.getOutputStream(); byte[] buf = new byte[1024]; int len = 0; while((len=fis.read(buf))!=-1){ out.write(buf,0,len); } //告诉服务器端图片数据发送完毕,不要等着读了。 s.shutdownOutput(); //读取上传成功字样。 InputStream in = s.getInputStream(); byte[] bufIn = new byte[1024]; int lenIn = in.read(bufIn); System.out.println(new String(bufIn,0,lenIn)); //关闭。 fis.close(); s.close(); } }
##################################################################
服务端
###UploadPicServer.java public class UploadPicServer { /** * @param args * @throws IOException */ public static void main(String[] args) throws IOException { System.out.println("上传图片服务端运行......"); // 创建server socket 。 ServerSocket ss = new ServerSocket(10007); while (true) { // 获取客户端。 Socket s = ss.accept(); //实现多个客户端并发上传,服务器端必须启动做个线程来完成。 new Thread(new UploadPic(s)).start(); } } }
###UploadPic.java public class UploadPic implements Runnable { private Socket s; public UploadPic(Socket s) { this.s = s; } @Override public void run() { try { String ip = s.getInetAddress().getHostAddress(); System.out.println(ip + ".....connected"); // 读取图片数据。 InputStream in = s.getInputStream(); // 写图片数据到文件。 File dir = new File("e:\\uploadpic"); if (!dir.exists()) { dir.mkdir(); } // 为了避免覆盖,通过给重名的文件进行编号。 int count = 1; File picFile = new File(dir, ip + "(" + count + ").jpg"); while (picFile.exists()) { count++; picFile = new File(dir, ip + "(" + count + ").jpg"); } FileOutputStream fos = new FileOutputStream(picFile); byte[] buf = new byte[1024]; int len = 0; while ((len = in.read(buf)) != -1) { fos.write(buf, 0, len); } // 给客户端一个回馈信息。 OutputStream out = s.getOutputStream(); out.write("上传成功".getBytes()); // 关闭资源。 fos.close(); s.close(); } catch (IOException e) { } } }
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- 构建自己的jar包上传至Mvaen中央仓库和版本更新 2020-06-11
- 学习笔记之网络编程 2020-06-01
- 网络编程杂谈之TCP协议 2020-05-27
- 抢头条offer机会,抖音面试题:网络编程Socket+数据同步+Red 2020-05-12
- springboot docker jenkins 自动化部署并上传镜像 2020-05-02
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash