Android Socket 編程

Socket 編程:編程

 1.what is Socket網絡

  網絡通訊的一種接口  socket

  統稱:套接字spa

  用於描述IP地址和端口,是一個通訊鏈的句柄。code

  應用程序經過 「套接字」 向 網絡發出請求或者應答網絡請求。server

  Socket 分爲兩部分:服務端 socket,和客戶端socket對象

(UDP 協議 是 一次性將數據打包,進行發送,不對數據傳輸過程當中 數據的丟失 負責接口

  UDP 發送的數據 是有限的,傳輸速度比較快ip

 )get

(TCP 協議 發數據時要求接收方 ,返回一個迴應,傳輸速度比較慢)

 2.Socket 基本通訊模型

 3.使用基於TCP協議的Socket

   服務端代碼以下:

   1.聲明一個ServerSocket 對象,並讓這個Socket 在指定端口監聽

    ServerSocket serverSocket = new ServerSocket(端口號);

    2.調用ServerSocket 的accept()方法,接受客戶端發送的請求

     Socket socket = serverSocket.accept();

    3.從Socket 中獲得 InputStream 對象

      InputStream inputStream = socket.getInputStream();

    4.從inputStream 中讀取客戶端發送的數據。

     byte[] buffer= new byte[1024*4];

     int temp=0;

     while(temp=inputstream.read(buffer)!=-1){

      system.out.println(new String(buffer,0,temp));

     }

    客戶端代碼以下:

      1. 建立Socket 鏈接

        Socket socket = new Socket("ip address",端口號);

       2.寫入數據到 客戶端到outputStream中 經過socket 傳輸給 服務端。

        //some codes simple。

 4.使用基於UDP協議的Socket

    UDP通訊 方式:

      服務端:

        1.建立DatagramSocket 對象,並指定監聽的端口號:

          DatagramSocket socket = new DatagramSocket(端口號);

        2. 建立空的 DatagramPacket 對象

          byte data[]= new byte [1024];

          DatagramPacket packet = new  DatagramPacket(data,data.length);

        3.使用receive方法 接收客戶端所發送的數據,存放到DatagramSocket對象中。

          socket.receive(packet);

      客戶端:

        1.建立DatagramSocket 對象

          DatagramSocket socket = new DatagramSocket(端口號);

        2.建立一個InetAddress

         InetAddress serverAddress= InetAddress.getByName(ip address);

        3.建立 DatagramPacket 對象,並指定這個數據包點接收地址及端口號

        4.調用Socket 對象的send 方法 ,發送數據。

相關文章
相關標籤/搜索