首页 > 系统 > Android > 正文

android手机端与PC端使用adb forword通信

2019-12-12 03:02:25
字体:
来源:转载
供稿:网友

PC端与Android手机端使用adb forword通信

服务器端代码如下:

import java.io.IOException; import java.io.ObjectOutputStream; import java.net.Socket; import java.net.UnknownHostException; import java.util.Scanner; public class Server {   public static final String TAG = "server";   public static int PC_LOCAL_PORT = 22222;   public static int PHONE_PORT = 22222;   public static String ADB_PATH = "adb.exe";   /**    * @param args    */   public static void main(String[] args) {     // TODO Auto-generated method stub     YingyonghuiHubServer.execAdb();   }   public static void execAdb() {     // run the adb bridge     try {       Process p = Runtime.getRuntime().exec(           ADB_PATH + " forward tcp:" + PC_LOCAL_PORT + " tcp:"               + String.valueOf(PHONE_PORT));       Scanner sc = new Scanner(p.getErrorStream());       // If there is some output, it failed to start adb       if (sc.hasNext()) {         while (sc.hasNext())           System.out.println(sc.next());         System.err.println("Cannot start the Android debug bridge");         return;       }       initializeConnection();     } catch (Exception e) {       System.err.println(e.toString());     }   }   static Socket socket;   public static void initializeConnection() {     // Create socket connection     try {       socket = new Socket("localhost", PC_LOCAL_PORT);       ObjectOutputStream oos = new ObjectOutputStream(           socket.getOutputStream());       oos.writeObject("lalala");       oos.close();       socket.close();     } catch (UnknownHostException e) {       System.err.println("Socket connection problem (Unknown host)"           + e.getStackTrace());       e.printStackTrace();     } catch (IOException e) {       System.err.println("Could not initialize I/O on socket");       e.printStackTrace();     }   } } 

 客户端代码如下:

import java.io.IOException; import java.io.ObjectInputStream; import java.net.ServerSocket; import java.net.Socket; import android.app.Activity; import android.content.Context; import android.os.AsyncTask; import android.os.Bundle; import android.util.Log; import android.widget.TextView; import android.widget.Toast; public class Client extends Activity {   public static final String TAG = "client";   public static int PHONE_PORT = 22222;   Context mContext = null;   TextView textView = null;   ServerSocket server = null;   @Override   public void onCreate(Bundle savedInstanceState) {     super.onCreate(savedInstanceState);     setContentView(R.layout.main);     this.mContext = this;     this.textView = (TextView) this.findViewById(R.id.textView1);     try {       server = new ServerSocket(PHONE_PORT);     } catch (IOException e) {       e.printStackTrace();       return;     }     new RepackTestTask().execute();   }   private class RepackTestTask extends AsyncTask {     @Override     protected Object doInBackground(Object... params) {       Socket client = null;       // initialize server socket       while (true) {         try {           // attempt to accept a connection           client = server.accept();           Log.d(TAG, "Get a connection from "               + client.getRemoteSocketAddress().toString());           ObjectInputStream ois = new ObjectInputStream(               client.getInputStream());           String somewords = (String) ois.readObject();           Log.d(TAG, "Get some words" + somewords);           this.publishProgress(somewords);           client.close();         } catch (IOException e) {           Log.e(TAG, "" + e);         } catch (ClassNotFoundException e) {           // TODO Auto-generated catch block           e.printStackTrace();         }       }     }     @Override     protected void onProgressUpdate(Object... values) {       super.onProgressUpdate(values);       Toast.makeText(mContext, values[0].toString(), Toast.LENGTH_LONG)           .show();     }   } } 

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

发表评论 共有0条评论
用户名: 密码:
验证码: 匿名发表