手机和电脑简单的远程协作

这是一个关于手机和电脑实现简单远程协作的示例。服务端使用Java创建一个图像服务器,接收来自手机客户端的图像数据,并将其保存到指定位置。手机客户端部分展示了如何获取设备的IP地址,设置摄像头预览,并将摄像头捕获的图像数据发送到服务端。
摘要由CSDN通过智能技术生成

服务端的代码

import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.io.RandomAccessFile;
import java.net.ServerSocket;
import java.net.Socket;

import javax.imageio.ImageIO;
import javax.swing.JButton;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JPanel;

public class ImageServer {        
    public static ServerSocket ss = null;
     
    public static void main(String args[]) throws IOException{    
            ss = new ServerSocket(6000);
         
        final ImageFrame frame = new ImageFrame(ss);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setVisible(true);
        
        while(true){
                frame.panel.getimage();
            frame.repaint();
        }        
    }
        
}
 
/**
    A frame with an image panel
*/
@SuppressWarnings("serial")
class ImageFrame extends JFrame{
        public ImagePanel panel;
        public JButton jb;
    
    public ImageFrame(ServerSocket ss){
               // get screen dimensions              
        Toolkit kit = Toolkit.getDefaultToolkit();
        Dimension screenSize = kit.getScreenSize();
        int screenHeight = screenSize.height;
        int screenWidth = screenSize.width;
 
        // center frame in screen
        setTitle("ImageTest");
        setLocation((screenWidth - DEFAULT_WIDTH) / 2, (screenHeight - DEFAULT_HEIGHT) / 2);
        setSize(DEFAULT_WIDTH, DEFAULT_HEIGHT);
 
        // add panel to frame
        this.getContentPane().setLayout(null);
        panel = new ImagePanel(ss);
        panel.setSize(640,480);
        panel.setLocation(0, 0);
        add(panel);
        jb = new JButton("拍照");
        jb.setBounds(0,480,640,50);
        add(jb);
        saveimage saveaction = new saveimage(ss);
        jb.addActionListener(saveaction);
    }
 
    public static final int DEFAULT_WIDTH = 640;
    public static final int DEFAULT_HEIGHT = 560;  
}
 
/**
   A panel that displays a tiled image
*/
@SuppressWarnings("serial")
class ImagePanel extends JPanel {     
    private ServerSocket ss;
    private Image image;
    private InputStream ins;
          
    public ImagePanel(ServerSocket ss) {  
            this.ss = ss;
    }
     
    public void getimage() throws IOException{
            Socket s = this.ss.accept();

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值