標籤: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通訊