您好,登錄后才能下訂單哦!
本文實例為大家分享了Android socket的實現原理,供大家參考,具體內容如下
Socket套接字
是網絡上具有唯一標識的IP地址和端口號組合在一起才能構成唯一能識別的標識符套接字。
socket實現的原理機制:
1、通信的兩端都有Socket
2、網絡通信其實就是Socket間的通信
3、數據在兩個Socket間通過IO傳輸
建立Socket(客戶端)和ServerSocket(服務器端)
建立連接后,通過Socket中的IO流進行數據的傳輸
關閉socket
同樣,客戶端與服務器端是兩個獨立的應用程序。
服務器端思路
1、建立服務器端的socket服務,需要一個端口
2、服務端沒有直接的操作,而是通過accept方法獲取客戶端對象,在通過獲取到的客戶端對象的流和客戶端進行通信
3、通過客戶端獲取流對象的方法,讀取數據或者寫入數據
4、如果服務完成,需要關閉客戶端,然后關閉服務器,但是,一般會關閉客戶端,不會關閉服務器,因為服務端是一直提供服務的
服務端實現代碼
// 創建服務器端 ServerSocket server = new ServerSocket(5555); while(true){ // 等待連接 Socket accept = server.accept(); OutputStream outputStream = accept.getOutputStream(); outputStream.write("你好,我是服務器!\r\n".getBytes()); outputStream.flush(); // 讀取數據 InputStream inputStream = accept.getInputStream(); BufferedReader reader = new BufferedReader(new InputStreamReader( inputStream)); System.out.println("服務器:" + reader.readLine()); outputStream.close(); inputStream.close(); }
客戶端思路
1、建立客戶端的Socket服務,并明確要連接的服務器。
2、如果連接建立成功,就表明,已經建立了數據傳輸的通道.就可以在該通道通過IO進行數據的讀取和寫入.該通道稱為Socket流,Socket流中既有讀取流,也有寫入流.
3、通過Socket對象的方法,可以獲取這兩個流
4、通過流的對象可以對數據進行傳輸
5、如果傳輸數據完畢,關閉資源
客戶端實現代碼
//創建套接字 確定要連接的服務器ip與端口口 Socket socket=new Socket("172.17.23.77",5555); InputStream inputStream = socket.getInputStream(); BufferedReader br=new BufferedReader(new InputStreamReader(inputStream)); String readLine = br.readLine(); System.out.println("客戶端:"+readLine); //向服務器發送消息 OutputStream outputStream = socket.getOutputStream(); outputStream.write("你好\r\n".getBytes()); outputStream.flush(); outputStream.close(); inputStream.close();
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持億速云。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。