本文實例簡述了Android中Socket通訊的實作方法,具體內容如下:
一、socket通信概述
通俗的來說套接字(socket)是通訊的基石,是支援TCP/IP協定的網路通訊的基本操作單元。它是網路通訊過程中端點的抽象表示,包含進行網路通訊必須的五種資訊:連接使用的協議,本地主機的IP位址,本地進程的協議端口,遠地主機的IP位址,遠地進程的協議端口。
應用層透過傳輸層進行資料通訊時,TCP會遇到同時為多個應用程式進程提供並發服務的問題。多個TCP連接或多個應用程式進程可能需要透過同一個TCP協定連接埠傳輸資料。為了區別不同的應用程式進程和連接,許多電腦作業系統為應用程式與TCP/IP協定互動提供了套接字(Socket)介面。應用層可以和傳輸層透過Socket接口,區分來自不同應用程式進程或網路連接的通信,實現資料傳輸的並發服務。
總之一句話,socket是對TCP/IP協定的封裝。
二、使用Socket步驟(client):
1、建立Socket(Tcp)連接
在Java中建立Socket連線是相當容易的事情,使用類別庫提供的Socket類別就可以實現。
Socketclient=null; //表示客戶端client=newSocket("localhost",5000);
2、發送數據
PrintStreamout=newPrintStream(socket.getOutputStream()); //發送資料,PrintStream最方便
3.接收回訊息
buf=newBufferedReader(newInputStreamReader(socket.getInputStream()));; //一次接收完成讀取Socket的輸入流,在其中讀出返回訊息
4、關閉Socket
Socket.close();
三、補充:
Socketsever端(非多執行緒實作)ServerSocketserver=null; //定義ServerSocket類別Socketclient=null; //表示客戶端PrintStreamout=null; //列印流輸出最方便server=newServerSocket(8888); //上監聽System.out.println("伺服器運行,等待客戶端連線。");client=server.accept(); //得到連接,程式進入到阻塞狀態Stringstr="helloworld"; //表示要輸出的訊息out=newPrintStream(client.getOutputStream());out.println(str); //向客戶端輸出訊息client. close();server.close();