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

发布时间 - 2026-01-11 00:45:41    点击率:

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(); 
    } 
  } 
} 

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


# Android  # adb  # forword通信  # forword实现手机和PC通信  # Android自定义PasswordInputView密码输入  # Android NDK开发简单程序分享(Hello Word!)  # Android webview转PDF的方法示例  # Android实现pdf在线预览或本地预览的方法  # Android 下载并打开PDF  # Doc  # Dwg文档实例  # Android使用模板生成支持手机直接查看的Word文档  # 希望能  # 谢谢大家  # 客户端  # Runtime  # bridge  # Process  # getRuntime  # valueOf  # tcp  # exec  # run  # Auto  # generated  # main  # TODO  # YingyonghuiHubServer  # execAdb  # method  # stub  # sc 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: Laravel PHP版本要求一览_Laravel各版本环境要求对照  香港服务器如何优化才能显著提升网站加载速度?  Laravel怎么导出Excel文件_Laravel Excel插件使用教程  品牌网站制作公司有哪些,买正品品牌一般去哪个网站买?  Android中AutoCompleteTextView自动提示  Laravel怎么返回JSON格式数据_Laravel API资源Response响应格式化【技巧】  怎么制作网站设计模板图片,有电商商品详情页面的免费模板素材网站推荐吗?  Laravel Seeder怎么填充数据_Laravel数据库填充器的使用方法与技巧  如何用好域名打造高点击率的自主建站?  Laravel如何实现本地化和多语言支持_Laravel多语言配置与翻译文件管理  如何快速搭建高效简练网站?  香港服务器部署网站为何提示未备案?  图片制作网站免费软件,有没有免费的网站或软件可以将图片批量转为A4大小的pdf?  大学网站设计制作软件有哪些,如何将网站制作成自己app?  免费视频制作网站,更新又快又好的免费电影网站?  在centOS 7安装mysql 5.7的详细教程  Android自定义listview布局实现上拉加载下拉刷新功能  如何在建站之星网店版论坛获取技术支持?  Laravel如何编写单元测试和功能测试?(PHPUnit示例)  Laravel如何优化应用性能?(缓存和优化命令)  PHP 500报错的快速解决方法  海南网站制作公司有哪些,海口网是哪家的?  Laravel如何使用Facades(门面)及其工作原理_Laravel门面模式与底层机制  Laravel如何使用Scope本地作用域_Laravel模型常用查询逻辑封装技巧【手册】  Laravel如何生成PDF或Excel文件_Laravel文档导出工具与使用教程  黑客如何利用漏洞与弱口令入侵网站服务器?  打造顶配客厅影院,这份100寸电视推荐名单请查收  PHP 实现电台节目表的智能时间匹配与今日/明日轮播逻辑  Laravel怎么调用外部API_Laravel Http Client客户端使用  东莞市网站制作公司有哪些,东莞找工作用什么网站好?  如何快速查询网站的真实建站时间?  java获取注册ip实例  ai格式如何转html_将AI设计稿转换为HTML页面流程【页面】  如何在IIS7中新建站点?详细步骤解析  Win11搜索栏无法输入_解决Win11开始菜单搜索没反应问题【技巧】  如何在企业微信快速生成手机电脑官网?  北京网页设计制作网站有哪些,继续教育自动播放怎么设置?  矢量图网站制作软件,用千图网的一张矢量图做公司app首页,该网站并未说明版权等问题,这样做算不算侵权?应该如何解决?  个人摄影网站制作流程,摄影爱好者都去什么网站?  Laravel怎么实现API接口鉴权_Laravel Sanctum令牌生成与请求验证【教程】  如何快速使用云服务器搭建个人网站?  Python自然语言搜索引擎项目教程_倒排索引查询优化案例  Laravel如何使用API Resources格式化JSON响应_Laravel数据资源封装与格式化输出  如何基于云服务器快速搭建个人网站?  如何挑选最适合建站的高性能VPS主机?  长沙做网站要多少钱,长沙国安网络怎么样?  如何获取免费开源的自助建站系统源码?  JavaScript 输出显示内容(document.write、alert、innerHTML、console.log)  极客网站有哪些,DoNews、36氪、爱范儿、虎嗅、雷锋网、极客公园这些互联网媒体网站有什么差异?  Laravel安装步骤详细教程_Laravel环境搭建指南