Socket程式設計模型

池塘里洗澡的鸭子發表於2024-06-03

  Socket,套接字就是兩臺主機之間邏輯連線的端點,其屬於TCP/IP協議中的傳輸層協議,主要解決資料如何在網路中傳輸。而HTTP是應用層協議,主要解決如何包裝資料(資料的格式化)。

  Socket是通訊的基石,是支援TCP/IP協議的網路通訊的基本操作單元。它是網路通訊過程中端點的抽象表示,包含進行網路通訊必須的五種資訊:

    1)連線使用的協議(TCP、UDP)

    2)本地主機的IP地址

    3)本地程序的協議埠

    4)遠端主機的IP地址

    5)遠端程序的協議埠。

  Socket整體流程如下圖:
            

  具體程式設計步驟如下:

    伺服器端程式設計的步驟:

      1:載入套接字型檔,建立套接字(WSAStartup()/socket());

      2:繫結套接字到一個IP地址和一個埠上(bind());

      3:將套接字設定為監聽模式等待連線請求(listen());

      4:請求到來後,接受連線請求,返回一個新的對應於此次連線的套接字(accept());

      5:用返回的套接字和客戶端進行通訊(send()/recv());

      6:返回,等待另一連線請求;

      7:關閉套接字,關閉載入的套接字型檔(closesocket()/WSACleanup())。
    客戶端程式設計的步驟:

      1:載入套接字型檔,建立套接字(WSAStartup()/socket());

      2:向伺服器發出連線請求(connect());

      3:與伺服器端進行通訊(send()/recv());

      4:關閉套接字,關閉載入的套接字型檔(closesocket()/WSACleanup())。

  示例程式碼如下:

    客戶端:

            

    服務端:

            

            

  測試結果:

            

            

相關文章