手机控制电脑关机程序

原理:移动端与服务器端通过Socket建立连接并通信。

服务器端:

package shutdownWithAndroid;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.PrintStream;
import java.net.ServerSocket;
import java.net.Socket;

public class SocketServer {

    static void shutdown(){

          try {  
                  Runtime.getRuntime().exec("shutdown -s -t 10");  

              }catch (Exception e) {  

                  e.printStackTrace();

         }                                              
    }     

    public static void main(String[] args) throws IOException{

        ServerSocket  ss = new ServerSocket(30000);

        while (true){
            BufferedReader reader =null;
            InputStreamReader isr =null;
            InputStream is =null;

            PrintStream ps =null;
            OutputStream os =null;

            Socket s = ss.accept();

            is = s.getInputStream();                                                    
            os = s.getOutputStream();

            if(is!=null){
                isr = new InputStreamReader(is);
                reader = new BufferedReader(isr);
                String line = reader.readLine();
                System.out.println(line);

                if(line!=null){
                    if(os!=null){
                        ps = new PrintStream(os);
                        ps.print("true");
//                      shutdown();
                        ps.close(); 
                        System.out.println("****************************");
                        }
                    }   
                reader.close();
                }
            s.close();
            }

    }

}

移动端:

package com.example.shutdownpc;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.PrintStream;
import java.net.Socket;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;


public class MainActivity extends Activity {

    private Button btn;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        btn = (Button) findViewById(R.id.shutdown);

        btn.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {

            new Thread() 
            //里面没有Runnable
            {
                public void run() {
                    try {           
                        Socket sc = new Socket("192.168.23.5" , 30000); 
                        //换成自己服务器端的IP地址

                        BufferedReader reader =null;
                        InputStreamReader isr =null;
                        InputStream is = null;

                        PrintStream ps =null;
                        OutputStream os =null;                                      

                        os = sc.getOutputStream();
                        is = sc.getInputStream();

                        isr = new InputStreamReader(is);
                        reader = new BufferedReader(isr);

                            if(os!=null){
                                ps = new PrintStream(os);
                                ps.print("hello!"); 
                                ps.close(); 
                                }

//                          if(reader!=null){                                                                                       
//                              String line = reader.readLine();
//                                                              
//                              System.out.println(line);
//                              
//                              System.out.println("****************************");
//                                                                                              
//                              reader.close();                                                                                                 
//                              }       

                            sc.close();                                                     

                    } catch (IOException e) {

                        e.printStackTrace();
                        System.out.println("IOException");
                    }

                }
                }.start();

        }
        });

  }  

}
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
要实现手机远程控制电脑程序,需要用到网络编程和远程控制技术。下面提供一个简单的基于Java的方案,供参考: 1. 服务端 首先,需要在电脑上编写一个服务端程序,用于接收手机端发来的控制指令。以下是一个简单的例子: ```java import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.net.ServerSocket; import java.net.Socket; public class RemoteControlServer { public static void main(String[] args) throws IOException { int port = 8888; // 定义服务端监听的端口号 ServerSocket serverSocket = new ServerSocket(port); // 创建ServerSocket对象 System.out.println("服务端已启动,等待连接..."); Socket socket = serverSocket.accept(); // 监听客户端连接 System.out.println("客户端已连接:" + socket.getInetAddress().getHostAddress()); BufferedReader reader = new BufferedReader(new InputStreamReader(socket.getInputStream())); // 获取输入流 String command; while ((command = reader.readLine()) != null) { // 循环读取客户端发送的指令 // 执行指令 // ... System.out.println("收到指令:" + command); } } } ``` 2. 客户端 接下来,在手机上编写一个客户端程序,用于发送控制指令给服务端。以下是一个简单的例子: ```java import java.io.IOException; import java.io.PrintWriter; import java.net.Socket; public class RemoteControlClient { public static void main(String[] args) throws IOException { String host = "192.168.1.100"; // 服务端IP地址 int port = 8888; // 服务端监听的端口号 Socket socket = new Socket(host, port); // 创建Socket对象 PrintWriter writer = new PrintWriter(socket.getOutputStream()); // 获取输出流 // 发送指令 String command = "shutdown -s -t 0"; // 关机指令 writer.println(command); writer.flush(); socket.close(); // 关闭Socket连接 } } ``` 以上代码仅供参考,实现具体功能需要根据实际情况进行修改和完善。同时,需要注意网络安全问题,避免被不法分子利用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值