作者 : 卿笃军
原文地址:http://blog.csdn.net/qingdujun/article/details/39338831
本文演示,使用Socket进行网络图片传送,实现客户端的client.bmp文件上传到服务端。
1)客户端,上传client.bmp图片给服务端,并接受服务端返回的“上传成功”消息。
2)服务端,接受客户端的图片并保存为server.bmp,同时给客户端发送“上传成功”消息。
客户端,代码如下:
package upload.photo.client; import java.io.FileInputStream; import java.io.InputStream; import java.io.OutputStream; import java.net.Socket; //客户端:上传图片 public class CUploadPhotoClient { public static void main(String[] args) throws Exception{ //1.连接诶服务器 Socket s = new Socket("127.0.0.1",5612); System.out.println("已连接到服务器5612端口,准备传送图片..."); //获取图片字节流 FileInputStream fis = new FileInputStream("client.bmp"); //获取输出流 OutputStream out = s.getOutputStream(); byte[] buf = new byte[1024]; int len = 0; //2.往输出流里面投放数据 while ((len = fis.read(buf)) != -1) { out.write(buf,0,len); } //通知服务端,数据发送完毕 s.shutdownOutput(); //3.获取输出流,接受服务器传送过来的消息“上传成功” InputStream in = s.getInputStream(); byte[] bufIn = new byte[1024]; int num = in.read(bufIn); System.out.println(new String(bufIn,0,num)); //关闭资源 fis.close(); out.close(); in.close(); s.close(); } }
服务端,代码如下:
package upload.photo.server; import java.io.FileOutputStream; import java.io.InputStream; import java.io.OutputStream; import java.net.ServerSocket; import java.net.Socket; public class CUploadPhotoServer { public static void main(String[] args) throws Exception{ //1.服务器开始监听5612端口 ServerSocket ss = new ServerSocket(5612); System.out.println("服务端已启动,正在监听5612端口..."); //等待客户端 Socket s = ss.accept(); System.out.println("检测到客户端,准备数据接收..."); //客户端已连接,获取输入流 InputStream in = s.getInputStream(); //创建图片字节流 FileOutputStream fos = new FileOutputStream("server.bmp"); 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(); in.close(); out.close(); s.close(); ss.close(); } }
有不明白的地方,可以参考我上一篇文章:Java TCP使用Socket进行网络文件传送(5)
运行效果显示:
1)启动服务端
2)启动客户端
3)服务端显示结果
4)客户端图片储存位置
5)服务端储存图片位置
参考文献: Java视频 毕向东 主讲
原文地址:http://blog.csdn.net/qingdujun/article/details/39338831
时间: 2024-11-07 21:16:00