026.5 网络编程 上传图片
程序员文章站
2022-07-02 14:42:01
#######################################客户端 ##################################################################服务端 ......
#######################################
客户端
###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) { } } }
上一篇: CONTEST1001 题解
下一篇: 反射技术初步
推荐阅读
-
react native实现往服务器上传网络图片的实例
-
Java多线程+网络编程模拟客户上传文件到服务器
-
026.4 网络编程 上传文本
-
图片上传网络变模糊怎么办?图片上传到空间或朋友圈变模糊解决方法
-
RTSP协议网络摄像头安防视频上云网关产品EasyNVR视频服务上传宣传位图片报错
-
Android Retrofit2+rxjava2+Mvp基于okhttp3网络请求框架的使用 三 文件上传(支持多文件/多图片上传)
-
026.5 网络编程 上传图片
-
JAVA网络编程实现客户端文件的上传和服务器端文件的下载
-
荐 学Python划重点七 网络编程(UPD Socket编程、上传文件实例、计算圆的面积实例)
-
Java网络编程TCP实现文件上传功能