歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

Socket在Android中的應用

Android 提供的常用的網絡編程包括針對TCP/IP協議的Socket通信。Socket是一種跨平台的編程方式,可以在異構語言之間進行通信。

Socket程序的開發原理,是要實現服務器端和客戶端。

服務器,使用ServerSocket監聽指定的端口,端口可以隨意指定(由於1024以下的端口通常屬於保留端口,在一些操作系統中不可以隨意使用,所以建議使用大於1024的端口),等待客戶連接請求,客戶連接後,會話產生;在完成會話後,關閉連接。

客戶端,使用Socket對網絡上某一個服務器的某一個端口發出連接請求,一旦連接成功,打開會話;會話完成後,關閉Socket。客戶端不需要指定打開的端口,通常臨時的、動態的分配一個1024以上的端口。

更多Android相關信息見Android 專題頁面 http://www.linuxidc.com/topicnews.aspx?tid=11

下面是一個實現socket的例子:

服務器端代碼:

  1. package com.socket;  
  2.   
  3. import java.io.BufferedReader;  
  4. import java.io.InputStream;  
  5. import java.io.InputStreamReader;  
  6. import java.io.OutputStream;  
  7. import java.io.PrintWriter;  
  8. import java.net.ServerSocket;  
  9. import java.net.Socket;  
  10. /** 
  11. * com Server 
  12. */  
  13. public class Main {  
  14.     private int ServerPort = 9999;  
  15.     private ServerSocket serversocket = null;  
  16.     private OutputStream outputStream = null;  
  17.     private InputStream inputStream = null;  
  18.     private PrintWriter printWinter = null;  
  19.     private Socket socket = null;  
  20.     private BufferedReader reader = null;  
  21.       
  22.     public Main(){  
  23.         try{  
  24.             serversocket = new ServerSocket(ServerPort);  
  25.             System.out.println("服務啟動。。。");  
  26.             socket = serversocket.accept();  
  27.             System.out.println("客戶已連接");  
  28.               
  29.               
  30.         }catch(Exception ex){  
  31.             ex.printStackTrace();  
  32.         }  
  33.         try{  
  34.             outputStream= socket.getOutputStream();  
  35.             inputStream = socket.getInputStream();  
  36.             printWinter = new PrintWriter(outputStream,true);  
  37.             reader = new BufferedReader(new InputStreamReader(inputStream));  
  38.             BufferedReader in = new BufferedReader(new InputStreamReader(System.in));  
  39.             while (true){  
  40.                 String message = reader.readLine();  
  41.                 System.out.println("client:"+message);  
  42.                 if(message.equals("bye")||message.equals("Bye")){  
  43.                     break;  
  44.                 }  
  45.                 message = in.readLine();  
  46.                 printWinter.println(message);  
  47.                   
  48.             }  
  49.             outputStream.close();  
  50.             inputStream.close();  
  51.             socket.close();  
  52.             serversocket.close();  
  53.             System.out.print("Client is disconnected");  
  54.               
  55.         }catch(Exception e){  
  56.             e.printStackTrace();  
  57.         }finally{  
  58.               
  59.         }  
  60.       
  61.     }  
  62.     public static void main(String[] args){  
  63.         new Main();  
  64.     }  
Copyright © Linux教程網 All Rights Reserved