1.使用ServerSocket 創建TCP服務器端:
1 ServerSocket server; 2 try { 3 server = new ServerSocket(8000); 4 while (true) { 5 Socket client = server.accept(); // 等待客戶端的請求
6 OutputStream stream = client.getOutputStream(); 7 stream.write("hello world!\n".getBytes("utf-8"));// 發送消息
8 stream.close(); 9 client.close(); 10 } 11 } 12 catch (Exception ex) { 13 ex.printStackTrace(); 14 }
以上的簡單例子中我們使用 utf-8字符集進行編碼,因為Android是基於Linux內核的,當客戶端讀取網絡數據時,默認使用 utf-8 字符集進行解碼,這樣可以避免亂碼的產生。
2. 用Socket創建TCP客戶端:
1 Socket client; 2 try { 3 // 創建客戶端並建立遠程連接,具體IP地址和端口號需根據實際情況而定 4 client = new Socket("192.168.1.94", 8000); 5 // 將接受到的輸入流封裝成BufferedReader 6 BufferedReader reader = new BufferedReader( 7 new InputStreamReader(client.getInputStream())); 8 String msg = reader.readLine(); 9 Log.w("TCP", msg); 10 reader.close(); 11 client.close(); 12 } 13 catch (Exception ex) { 14 ex.printStackTrace(); 15 }
3. 在 AndroidManifest.xml 中添加應用權限:
<uses-permission android:name="android.permission.INTERNET"/>