码迷,mamicode.com
首页 > 编程语言 > 详细

Java TCP使用Socket进行网络图片传送(6)

时间:2014-09-17 12:12:42      阅读:243      评论:0      收藏:0      [点我收藏+]

标签:style   blog   http   io   os   使用   java   ar   strong   

作者 : 卿笃军

原文地址: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)启动服务端

bubuko.com,布布扣

2)启动客户端

bubuko.com,布布扣

3)服务端显示结果

bubuko.com,布布扣

4)客户端图片储存位置

bubuko.com,布布扣

5)服务端储存图片位置

bubuko.com,布布扣


参考文献: Java视频 毕向东 主讲

原文地址:http://blog.csdn.net/qingdujun/article/details/39338831


Java TCP使用Socket进行网络图片传送(6)

标签:style   blog   http   io   os   使用   java   ar   strong   

原文地址:http://blog.csdn.net/qingdujun/article/details/39338831

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!