一、目錄
二、什麼是Socket
Socket的英文原義是“孔”或“插座”。作爲進程通信機制,取後一種意思。通常也稱作“套接字”,用於描述IP地址和端口,是一個通信鏈的句柄(其實就是兩個程序通信用的)。
Socket非常類似於電話插座。以一個電話網爲例:電話的通話雙方相當於相互通信的2個程序,電話號碼就是ip地址。任何用戶在通話之前,首先要佔有一部電話機,相當於申請一個Socket;同時要知道對方的號碼,相當於對方有一個固定的Socket。然後向對方撥號呼叫,相當於發出連接請求。對方假如在場並空閒,拿起電話話筒,雙方就可以正式通話,相當於連接成功。雙方通話的過程,是一方向電話機發出信號和對方從電話機接收信號的過程,相當於向Socket發送數據和從Socket接收數據。通話結束後,一方掛起電話機相當於關閉Socket,撤銷連接。
Socket是通信的基石,是支持TCP/IP協議的網絡通信的基本操作單元。它是網絡通信過程中端點的抽象表示,包含進行網絡通信必須的五種信息:連接使用的協議,本地主機的IP地址,本地進程的協議端口,遠地主機的IP地址,遠地進程的協議端口。
應用層通過傳輸層進行數據通信時,TCP會遇到同時爲多個應用程序進程提供併發服務的問題。多個TCP連接或多個應用程序進程可能需要通過同一個 TCP協議端口傳輸數據。爲了區別不同的應用程序進程和連接,許多計算機操作系統爲應用程序與TCP/IP協議交互提供了Socket接口。應 用層可以和傳輸層通過Socket接口,區分來自不同應用程序進程或網絡連接的通信,實現數據傳輸的併發服務。
三、Socket相關概念
3-1、TCP/IP層次模型
當然這裏我們只討論重要的四層
1,應用層(Ap