Android 手機應用開發經驗 之 通過Socket(TCP/IP)與PC通訊

來源:互聯網
上載者:User

標籤:des   android   io   ar   os   使用   java   sp   strong   

Android 是一個開源的手機作業系統平台,已經被非常多的開發人員視作未來最有潛力的智能手機作業系統。而且,在很短的時間內就在Android Market上出現大量的第三方應用程式,供使用者下載與使用,其中有一些程式增強了手機的應用功能,而另外一些會充分的發揮

手機與其它電子裝置的互動。今天,本文主要講解如何?Android與PC通訊。

首先,我們先來建立PC的伺服器端,其原始碼如下:

public class TCPDesktopServer implements Runnable {

    public static final String SERVERIP="192.168.1.100";

    public static final int SERVERPORT=51706;

    @Override

    public void run() {

       try{

           System.out.println("伺服器:正在串連...");

           ServerSocket serverSocket = new ServerSocket(SERVERPORT);

           while(true){

              Socket client = serverSocket.accept();

              System.out.println("伺服器:正在接收...");

              try{

                  BufferedReader in = new BufferedReader(new

              InputStreamReader(client.getInputStream()));

                  String str = in.readLine();

                  System.out.println("伺服器:接收到:‘" + str + "‘");

                 

              }catch(Exception e){

                  System.out.println("伺服器:出錯!");

                  e.printStackTrace();

              }

              finally{

                  client.close();

                  System.out.println("伺服器:關閉。");

              }

           }

       }catch(Exception e){

           System.out.println("伺服器:出錯!");

           e.printStackTrace();

       }

       

    }

    public static void main(String a[]){

       Thread desktopServerThread = new Thread(new TCPDesktopServer());

       desktopServerThread.start();

    }

}

上面的原始碼分析如下:

 public static final String SERVERIP="192.168.1.100";

    public static final int SERVERPORT=51706;

指定Server監聽的連接埠和伺服器IP地址。

ServerSocket serverSocket = new ServerSocket(SERVERPORT);

應用程式之前所指定的IP和Port建立一個ServerSocket對象。

Socket client = serverSocket.accept();

用於偵聽和捕捉通過Socket串連的用戶端。

BufferedReader in = new BufferedReader(new

              InputStreamReader(client.getInputStream()));

應用Socket建立BufferedReader對象,用於接收Socket Stream中的資料。

其次,在Android中建立 用戶端(Client),原始碼如下:

try{

    InetAddress serverAddr = InetAddress.getByName("192.168.1.100");//TCP伺服器IP地址

        Log.d("TCP", "伺服器:正在串連...");

      Socket socket = new Socket(serverAddr,51706);

       String message = "你好!Android。";

       try {  

       Log.d("TCP", "伺服器正在發送資訊:‘"+message+"‘");

       PrintWriter out = new PrintWriter(new BufferedWriter(new OutputStreamWriter(socket.getOutputStream())),true);

                 out.println(message);

        } catch (Exception e) {

        Log.e("TCP", "伺服器出錯",e);

    }finally{

        socket.close();

    }

    }catch(Exception e){

       Log.e("TCP", "伺服器出錯",e);

    }

   }

原始碼分析:

   指定Server的IP地址。

    InetAddress serverAddr = InetAddress.getByName("192.168.1.100");

        應用Server的IP和連接埠建立Socket對象

        Socket socket = new Socket(serverAddr,51706);

        根據已經建立的Socket來建立PrintWriter,將資訊通過這個對象來發送給Server,其中包含了三個部分:OutputStreamWriter、BufferedWriter、PrintWriter。

         PrintWriter out = new PrintWriter(new BufferedWriter(new OutputStreamWriter(socket.getOutputStream())),true);

        以上就是Android與運行在PC上的Java Server通訊的例子。由於我沒有真機測試,所以運行在模擬器上效果不明顯。1所示。如果其他朋友有更好的方法,希望能與我一起交流。在此表示感謝。

   

Android 手機應用開發經驗 之 通過Socket(TCP/IP)與PC通訊

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.