Java中套接字的理解
阿新 • • 發佈:2017-05-07
java中套接字的理解
什麽是socket,以及兩端ServerSocket和Socket是真正的幹什麽用的,也終於理解到其實普通的socket也就僅僅是普通管道,兩邊通過這個管道互相傳和接受信息。
建立Socket連接
建立Socket連接至少需要一對套接字,其中一個運行於客戶端,稱為ClientSocket,另一個運行於服務器端,稱為ServerSocket。
套接字之間的連接過程分為三個步驟:
(1)服務器監聽:服務器端套接字並不定位具體的客戶端套接字,而是處於等待連接的狀態,實時監控網絡狀態,等待客戶端的連接請求。
(2)客戶端請求:指客戶端的套接字提出連接請求,要連接的目標是服務器端的套接字。為此,客戶端的套接字必須首先描述它要連接的服務器的套接字,指出服務器端套接字的地址和端口號,然後就向服務器端套接字提出連接請求。
(3)連接確認:當服務器端套接字監聽到或者說接收到客戶端套接字的連接請求時,就響應客戶端套接字的請求,建立一個新的線程,把服務器端套接字的描述發給客戶 端,一旦客戶端確認了此描述,雙方就正式建立連接。而服務器端套接字繼續處於監聽狀態,繼續接收其他客戶端套接字的連接請求。
socket到底是什麽?
經過多年的Java功底積累,終於對socket有了很好的定義,就是一個通信的管道,大家利用這個管道既可以從中取消息,也可以發消息,消息的兩端都可以使用這個socket。怎麽證明呢?
Socket socket = serverSocket.accept();//服務器端並沒有創建新的socket,而只是返回新的socket對象,
代碼中只是引用,而沒有new而已。再次證明socket就是一根管道,這跟管道讓服務器端和客戶端都可以相互通訊信息
本文出自 “簡答生活” 博客,謝絕轉載!
Java中套接字的理解