[开源]Android手机控制电脑----服务器端
2013-05-25 12:04
393 查看
首先是要有一个服务器端 开启端口监听 界面如下
输入端口号 点击开启 即可实现端口的监听
使用DatagramSocket socket = new DatagramSocket(port);创建一个UDP的端口
通过while(true) { socket.receive(packet); } 实现端口的一直监听
通过message = new String(packet.getData(),packet.getOffset(),packet.getLength()); 接收客户端传来的信息 解析为一个字符串
手机端发送的信息 由 type:info 组成 比如 我们想要实现鼠标左击 发送 leftButton:click 这个字符串
服务器段 解析这个字符串后 根据type:info 把messages = message.split(":"); 分解为type 和 info两部分
if(type.equals("leftButton")) LeftButton(info);
根据不同的info 分别调用 鼠标的左键的 down or up 或者是down and up
其它的比如 鼠标的移动 右键 滑轮 的操作思路 都一样
鼠标的移动是根据当前鼠标的左边 位置 进行加减计算
还有比如聊天功能 实现手机文字的输入 能发送到电脑的聊天框中
当时是朋友给的思路 感觉非常巧妙 手机发送过来的文字 放在粘贴板中 然后调用粘贴功能 就行了
通过 keyboard:message,内容,xxx
type等于keyboard info由message,内容,xxx三部分组成 如果info第一部分是message
就调用系统的粘贴板 把发来的内容复制在粘贴板中 再调用系统的 CTRL+V 把内容给粘贴出来
就可以实现聊天内容的发送了
另外控制台信息的输入 不是CTRP+V 是鼠标右键+P
-------------------------------------------------------------------------
注:由于当时水平有限 代码写的不规范 很多地方都是想到了 随手写的 所以请见谅
下载地址:http://download.csdn.net/detail/lujianing2011/5447591
输入端口号 点击开启 即可实现端口的监听
public void run(){ try { //创建一个DatagramSocket对象,并指定监听的端口号 DatagramSocket socket; try{ socket = new DatagramSocket(port); }catch(Exception e){ messagebox.setText("端口被使用,请更换端口"); startbutton.setEnabled(true); stopbutton.setEnabled(false); menux=0; field.setEditable(true); return; } byte data [] = new byte[1024]; //创建一个空的DatagramPacket对象 DatagramPacket packet = new DatagramPacket(data,data.length); //使用receive方法接收客户端所发送的数据 System.out.println("开启端口监听"+socket.getLocalPort()); while(true){ socket.receive(packet); message = new String(packet.getData(),packet.getOffset(),packet.getLength()); // System.out.println("message--->" + message); messagebox.setText(message); messages = message.split(":"); if(messages.length>=2){ type= messages[0]; info= messages[1]; if(type.equals("mouse")) MouseMove(info); if(type.equals("leftButton")) LeftButton(info); if(type.equals("rightButton")) RightButton(info); if(type.equals("mousewheel")) MouseWheel(info); if(type.equals("keyboard")) KeyBoard(info); } } } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } }
使用DatagramSocket socket = new DatagramSocket(port);创建一个UDP的端口
通过while(true) { socket.receive(packet); } 实现端口的一直监听
通过message = new String(packet.getData(),packet.getOffset(),packet.getLength()); 接收客户端传来的信息 解析为一个字符串
手机端发送的信息 由 type:info 组成 比如 我们想要实现鼠标左击 发送 leftButton:click 这个字符串
服务器段 解析这个字符串后 根据type:info 把messages = message.split(":"); 分解为type 和 info两部分
if(type.equals("leftButton")) LeftButton(info);
public void LeftButton(String info) throws AWTException{ java.awt.Robot robot = new Robot(); if(info.equals("down")) robot.mousePress(InputEvent.BUTTON1_MASK); else if(info.equals("release")) robot.mouseRelease(InputEvent.BUTTON1_MASK); else if(info.equals("up")) robot.mouseRelease(InputEvent.BUTTON1_MASK); else if(info.equals("click")){ robot.mousePress(InputEvent.BUTTON1_MASK); robot.mouseRelease(InputEvent.BUTTON1_MASK); } }
根据不同的info 分别调用 鼠标的左键的 down or up 或者是down and up
其它的比如 鼠标的移动 右键 滑轮 的操作思路 都一样
鼠标的移动是根据当前鼠标的左边 位置 进行加减计算
PointerInfo pinfo = MouseInfo.getPointerInfo(); //得到鼠标的坐标 java.awt.Point p = pinfo.getLocation(); mx=p.getX(); //得到当前电脑鼠标的坐标 my=p.getY(); java.awt.Robot robot; try { robot = new Robot(); // System.out.println(mx+","+my); // System.out.println(px+","+py); robot.mouseMove((int)mx+(int)px,(int)my+(int)py); } catch (AWTException e) { e.printStackTrace(); }
还有比如聊天功能 实现手机文字的输入 能发送到电脑的聊天框中
当时是朋友给的思路 感觉非常巧妙 手机发送过来的文字 放在粘贴板中 然后调用粘贴功能 就行了
通过 keyboard:message,内容,xxx
String args[]=info.split(","); String type=null; String cont=null; String keystate =null; java.awt.Robot robot = new Robot(); if(args.length==2){ type = args[0]; cont = args[1]; } if(args.length==3){ type = args[0]; cont = args[1]; keystate = args[2]; } if(type.equals("message")){ Clipboard cb = Toolkit.getDefaultToolkit().getSystemClipboard(); cb.setContents(new StringSelection(cont), null);//调用粘贴板 robot.keyPress(KeyEvent.VK_CONTROL); robot.keyPress(KeyEvent.VK_V); robot.keyRelease(KeyEvent.VK_CONTROL); robot.keyRelease(KeyEvent.VK_V); }
type等于keyboard info由message,内容,xxx三部分组成 如果info第一部分是message
就调用系统的粘贴板 把发来的内容复制在粘贴板中 再调用系统的 CTRL+V 把内容给粘贴出来
就可以实现聊天内容的发送了
另外控制台信息的输入 不是CTRP+V 是鼠标右键+P
-------------------------------------------------------------------------
注:由于当时水平有限 代码写的不规范 很多地方都是想到了 随手写的 所以请见谅
下载地址:http://download.csdn.net/detail/lujianing2011/5447591
相关文章推荐
- [开源]Android手机控制电脑---项目背景介绍
- 用你的android手机控制你的电脑--unified reomte
- 电脑控制手机的另一选择——android vnc server
- android手机可视化远程控制电脑的设计
- android与arduino手机控制项目开源
- 我的Android进阶之旅------>Android实现用Android手机控制PC端的关机和重启的功能(一)PC服务器端
- Teamviewer QuickSupport - 在电脑上远程连接控制手机/平板的软件神器 (Android/iOS)
- 触控鼠标 (使用手机控制电脑,支持IOS,android.OSx 和windows)进入初步推广阶段
- 电脑远程登录控制Android手机-Webkey For Android使用教程
- 电脑控制手机的另一选择——android vnc server
- android手机控制电脑源码
- 电脑通过vnc控制android 手机
- 电脑控制手机的另一选择——android vnc server
- Android资讯 ----电脑桌面端控制手机
- android手机控制电脑源码
- android手机控制电脑源码
- Vysor让你在电脑上完全控制android手机屏幕镜像(译)
- 电脑远程登录控制Android手机-Webkey For Android使用教程
- Vysor 在电脑上控制android手机屏幕 镜像
- 电脑控制手机的另一选择——Android vnc server