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

大数据Java基础第十八天作业

时间:2016-06-17 17:50:16      阅读:199      评论:0      收藏:0      [点我收藏+]

标签:java   socket   io   udp   

第一题:udp传输屏幕广播(低于64k)。

import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.ImageIcon;

import java.net.DatagramPacket;
import java.net.DatagramSocket;

class ClientDemo{
    public static void main(String[] args) throws Exception{
        ClientUI ui = new ClientUI();
        new ClientReceive(ui).start();
    }
}

class ClientUI extends JFrame{
    private JLabel label;
    private ImageIcon icon;
    public ClientUI(){
        ini();
    }
    public void ini(){
        this.setBounds(0,0,600,400);
        this.setLayout(null);

        label = new JLabel();
        label.setBounds(0,0,600,400);
        label.setLayout(null);

        icon = new ImageIcon("e:/a.png");
        label.setIcon(icon);

        this.add(label);
        this.setVisible(true);
    }

    public void refreshImage(byte[] image_arr){
        label.setIcon(new ImageIcon(image_arr));
    }
}

class ClientReceive extends Thread{
    private DatagramSocket socket;
    private ClientUI ui;
    public ClientReceive(ClientUI ui) throws Exception{
        this.ui = ui;
        socket = new DatagramSocket(8889);
    }

    public void run(){
        try{
            int i = 0;
            while(true){
                byte[] buf = new byte[1024*60];
                DatagramPacket packet = new DatagramPacket(buf,buf.length);
                socket.receive(packet);
                int length = packet.getLength();
                ui.refreshImage(buf);
                Thread.sleep(1000);
            }
        }catch(Exception e){
            e.printStackTrace();
        }
    }
}

import java.net.DatagramSocket;
import java.net.DatagramPacket;
import java.net.InetAddress;

import java.awt.Rectangle;
import java.awt.image.BufferedImage;
import java.awt.Robot;

import javax.imageio.ImageIO;

import java.io.FileOutputStream;
import java.io.ByteArrayOutputStream;

import java.util.zip.GZIPOutputStream;

class ServerDemo{
    public static void main(String[] args) throws Exception{
        DatagramSocket socket = new DatagramSocket(8888);
        int i = 0;
        while(true){
            byte[] buf = null;
            buf = new byte[1024*60];

            Rectangle rect = new Rectangle(0,0,600,400);
            BufferedImage image = (new Robot()).createScreenCapture(rect);
            
            ByteArrayOutputStream baos = new ByteArrayOutputStream();
            ImageIO.write(image,"jpg",baos);
            byte[] zipData = baos.toByteArray();
            
            DatagramPacket packet = new DatagramPacket(zipData,zipData.length);
            InetAddress addr = InetAddress.getByName("127.0.0.1");
            packet.setAddress(addr);
            packet.setPort(8889);
            socket.send(packet);
            i++;
            Thread.sleep(1000);
            System.out.println(i);
        }
    }
}


本文出自 “森林敏” 博客,请务必保留此出处http://senlinmin.blog.51cto.com/6400386/1790128

大数据Java基础第十八天作业

标签:java   socket   io   udp   

原文地址:http://senlinmin.blog.51cto.com/6400386/1790128

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