Java核心API -- 14(Socket)

1. Socket相關概念

    1)網絡通信模型:C/S:client/server,客戶端/服務器端;B/S:browser/server,瀏覽器端/服務器端;C/S結構的優點:應用的針對性強,畫面絢麗,應用功能複雜。缺點:不易維護。B/S結構的優點:易於維護。缺點:效果差,交互性不強。

    2)Socket:封裝着本地的地址,服務端口等信息。ServerSocket:服務端的套接字。

服務器:使用ServerSocket監聽指定的端口,端口可以隨意指定(由於1024以下的端口通常屬於保留端口,在一些操作系統中不可以隨意使用,所以建議使用大於1024的端口),等待客戶連接請求,客戶連接後,會話產生;在完成會話後,關閉連接。

客戶端:使用Socket對網絡上某一個服務器的某一個端口發出連接請求,一旦連接成功,打開會話;會話完成後,關閉Socket。客戶端不需要指定打開的端口,通常臨時的、動態的分配一個1024以上的端口。

    3)永遠都是Socket去主動連接ServerSocket。一個ServerSocket可以接收若干個Socket的連接。網絡通信的前提:一定要捕獲異常。

    4)Socket連接基於TCP/IP協議,是一種長連接(長時間連着)。

    5)讀取服務器信息會阻塞,寫操作不會。

    6)建立連接並向服務器發送信息步驟:①通過服務器的地址及端口與服務器連接,而創建Socket時需要以上兩個數據。②連接成功後可以通過Socket獲取輸入流和輸出流,使用輸入流接收服務端發送過來的信息。③關閉連接。

    7)連接服務器:一旦Socket被實例化,那麼它就開始通過給定的地址和端口號去嘗試與服務器進行連接(自動的)。這裏的地址"localhost"是服務器的地址,8088端口是服務器對外的端口。我們自身的端口是系統分配的,我們無需知道。

    8)和服務器通信(讀寫數據):使用Socket中的getInputStream()獲取輸入流,使用getOutputStream()獲取輸出流。

    9)ServerSocket構造方法要求我們傳入打開的端口號,ServerSocket對象在創建的時候就向操作系統申請打開這個端口。

    10)通過調用ServerSocket的accept方法,使服務器端開始等待接收客戶端的連接。該方法是一個阻塞方法,監聽指定的端口是否有客戶端連接。直到有客戶端與其連接並接收客戶端套接字,否則該方法不會結束。


2. 基本Socket網絡編程--服務端和客戶端簡單實現


    案例37:

        wKiom1XljKPDE1DVAANCXYm7fuc379.jpg

        wKiom1XljLvgbjSIAAL8x2Fw32o792.jpg

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章