最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

android手機(jī)端與PC端使用adb forword通信

 更新時(shí)間:2017年04月21日 10:35:38   投稿:lqh  
這篇文章主要介紹了android手機(jī)端與PC端使用adb forword通信的相關(guān)資料,需要的朋友可以參考下

PC端與Android手機(jī)端使用adb forword通信

服務(wù)器端代碼如下:

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

感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站的支持!

相關(guān)文章

  • Android 判斷當(dāng)前語言環(huán)境是否是中文環(huán)境

    Android 判斷當(dāng)前語言環(huán)境是否是中文環(huán)境

    本文主要介紹了Android 判斷當(dāng)前語言環(huán)境是否是中文環(huán)境的方法。具有很好的參考價(jià)值。下面跟著小編一起來看下吧
    2017-04-04
  • Android利用Fragment實(shí)現(xiàn)Tab選項(xiàng)卡效果

    Android利用Fragment實(shí)現(xiàn)Tab選項(xiàng)卡效果

    這篇文章主要為大家詳細(xì)介紹了Android利用Fragment實(shí)現(xiàn)Tab選項(xiàng)卡效果,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-08-08
  • Retrofit + OkHttp緩存處理的示例代碼

    Retrofit + OkHttp緩存處理的示例代碼

    本篇文章主要介紹了Retrofit + OkHttp緩存處理的示例代碼,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-09-09
  • 詳解Android應(yīng)用開發(fā)--MP3音樂播放器代碼實(shí)現(xiàn)(一)

    詳解Android應(yīng)用開發(fā)--MP3音樂播放器代碼實(shí)現(xiàn)(一)

    這篇文章主要介紹了詳解Android應(yīng)用開發(fā)--MP3音樂播放器代碼實(shí)現(xiàn)(一),非常具有實(shí)用價(jià)值,需要的朋友可以參考下 。
    2017-01-01
  • Android?MPAndroidChart繪制原理

    Android?MPAndroidChart繪制原理

    這篇文章主要介紹了Android?MPAndroidChart繪制原理,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下
    2022-08-08
  • Android 實(shí)現(xiàn)無網(wǎng)絡(luò)傳輸文件的示例代碼

    Android 實(shí)現(xiàn)無網(wǎng)絡(luò)傳輸文件的示例代碼

    本篇文章主要介紹了Android 實(shí)現(xiàn)無網(wǎng)絡(luò)傳輸文件的示例代碼,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-02-02
  • Android錄音并且輸出為Mp4文件的方法教程

    Android錄音并且輸出為Mp4文件的方法教程

    這篇文章主要給大家介紹了關(guān)于Android錄音并且輸出為Mp4文件的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2018-08-08
  • Phonegap使用拍照功能時(shí)的內(nèi)存問題

    Phonegap使用拍照功能時(shí)的內(nèi)存問題

    最近幾天在學(xué)習(xí)使用phonegap進(jìn)行android應(yīng)用的開發(fā),網(wǎng)上的資料比較亂,個(gè)人參考了很多資料,也試驗(yàn)了很多次,一直在摸索,總算小有心得,這此過程中也遇到了一些問題,這里給大家分享下解決Phonegap使用拍照功能時(shí)的內(nèi)存問題的方法,這里簡(jiǎn)單的整理一下
    2015-05-05
  • Android+SQLite數(shù)據(jù)庫實(shí)現(xiàn)的生詞記事本功能實(shí)例

    Android+SQLite數(shù)據(jù)庫實(shí)現(xiàn)的生詞記事本功能實(shí)例

    這篇文章主要介紹了Android+SQLite數(shù)據(jù)庫實(shí)現(xiàn)的生詞記事本功能,結(jié)合具體實(shí)例形式分析了Android操作SQLite數(shù)據(jù)庫實(shí)現(xiàn)生詞記錄功能的操作步驟與相關(guān)注意事項(xiàng),需要的朋友可以參考下
    2017-09-09
  • Kotlin?泛型邊界型變及星投影使用詳解

    Kotlin?泛型邊界型變及星投影使用詳解

    這篇文章主要為大家介紹了Kotlin?泛型邊界型變及星投影使用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-12-12

最新評(píng)論

齐河县| 汝阳县| 竹北市| 罗源县| 玛多县| 鹿泉市| 枝江市| 玛曲县| 黔西县| 嘉黎县| 象州县| 邹城市| 南岸区| 茌平县| 慈利县| 安仁县| 舞阳县| 武汉市| 都匀市| 天全县| 南安市| 富阳市| 黎城县| 民丰县| 托克逊县| 乳源| 察隅县| 竹溪县| 桂平市| 杭锦后旗| 肃南| 普宁市| 揭阳市| 沅陵县| 双江| 长寿区| 农安县| 灵台县| 揭东县| 凤城市| 天等县|