本文實例簡述了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); //服務器在8888端口上監聽 System.out.println("服務器運行,等待客戶端連接。"); client=server.accept(); //得到連接,程序進入到阻塞狀態 Stringstr="helloworld"; //表示要輸出的信息 out=newPrintStream(client.getOutputStream()); out.println(str); //向客戶端輸出信息 client.close(); server.close();