Android中Socket通信

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類就可以實現。

Socket client = null ; // 表示客 戶端

client = new Socket("localhost",5000) ;

2、發送數據

PrintStream out = new PrintStream(socket.getOutputStream()) ;  // 發送 數據,PrintStream 最方便

3、接收返回信息

buf=newBufferedReader(new InputStreamReader(socket.getInputStream())) ; ; // 一次性接收完成

讀取Socket的輸入流,在其中讀出返回信息

4、關閉Socket

Socket.close();

補充:Socket sever端(非多線程實現)

ServerSocket server = null ; // 定義ServerSocket類

Socket client = null ; // 表示客 戶端

PrintStream out = null ; // 打印流輸出最方便

server = new ServerSocket(8888) ; // 服務器在8888端口上監聽

System.out.println("服務器運行,等待客戶端連接。") ;

client = server.accept() ; // 得到連接,程序進入到阻塞狀態

String str = "hello world" ; // 表示要輸出的信息

out = new PrintStream(client.getOutputStream()) ;

out.println(str) ; // 向客戶端輸出信息

client.close() ;

server.close() ;

發佈了34 篇原創文章 · 獲贊 20 · 訪問量 23萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章