歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> Socket在Android中的應用

Socket在Android中的應用

日期:2017/3/1 10:25:16   编辑:Linux編程

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