package com.mir.video.socket;

import java.awt.Color;
import java.awt.Graphics;
import java.awt.HeadlessException;
import java.awt.Image;
import java.io.BufferedInputStream;
import java.io.ByteArrayInputStream;
import java.io.DataInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.net.Socket;

import javax.imageio.ImageIO;
import javax.swing.JFrame;

import com.mir.Global;

/**
 * ClassName:SocketVideo
 * 
 * @author <font color="red">Edson</font>
 * @version
 * @since Ver 1.1
 * @Date 2014年6月27日 下午6:21:45
 * 
 * @see
 */
public class SocketVideo extends JFrame {
	private static final long serialVersionUID = 1L;
	private Image img;

	private SocketVideo() throws HeadlessException {
		// 设置显示标题
		this.setTitle("Socket模拟视频");
		// 设置窗口大小
		this.setSize(600, 480);
		// 设置是否显示
		this.setVisible(true);
		// 设置背景颜色
		this.setBackground(new Color(255));
	}

	@Override
	public void paint(Graphics g) {
		g.drawImage(img, 1, 1, 600, 480, this);
	}

	protected SocketVideo setImage(Image image) {
		this.img = image;
		return this;
	}
	
	public static void main(String[] args) throws IOException {
		Socket socket = null;
		SocketVideo frame = new SocketVideo();
		DataInputStream in = null;
		OutputStream out = null;
		byte[] buf = new byte[1024 * 1024 * 10];

		try {
			// 连接服务器
			socket = new Socket(Global.IP, Global.PORT);
			System.out.println("Client Start ");
			in = new DataInputStream(new BufferedInputStream(
					socket.getInputStream()));
			out = socket.getOutputStream();

			while (true) {
				// 向Server 写入数据 Server接收到数据后将不再阻塞
				out.write(1);
				out.flush();
				// 读取文件长度
				int len = (int) in.readLong();

				int length = 0;
				// 读取数据到byte[] 并得到流的长度
				length = in.read(buf);
				System.out.println("文件长度:" + len +" 字节");
				System.out.println("流  长  度:" + length +" 字节");
				if (len == length){
					frame.setImage(ImageIO.read(new ByteArrayInputStream(buf)))
							.repaint();
				}
				// 休眠100毫秒
				Thread.sleep(100);
			}
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
}
最近下载更多
myj2006  LV11 2019年8月30日
18089237297  LV3 2019年4月26日
pzg8616235  LV8 2018年9月10日
lhyi23  LV1 2018年6月11日
华丽的孤单331  LV9 2018年6月4日
zs3480  LV11 2018年2月3日
15943876586  LV17 2017年2月7日
都市书  LV4 2016年11月15日
gjynewer  LV15 2016年9月2日
gutong  LV10 2015年10月3日
最近浏览更多
s4dmcc  LV1 9月17日
dapeng0011  LV15 2月25日
飞翔的面包片  LV12 2023年12月19日
pangzhihui  LV14 2023年12月15日
lironggang  LV38 2023年6月13日
aq384419 2023年4月15日
暂无贡献等级
超维智能编程  LV6 2023年2月26日
nywgzhc  LV10 2022年11月20日
mc0624 2022年10月13日
暂无贡献等级
爱情戴罪的羔羊  LV7 2022年9月9日
顶部 客服 微信二维码 底部
>扫描二维码关注最代码为好友扫描二维码关注最代码为好友