什麼是網路套接字?(計算機網路)
網路套接字是計算機網路節點內的一個軟體元件,充當交付和接收資料的端點。網路架構的應用程式程式設計介面 (API) 定義了套接字的結構和屬性。套接字僅在基於節點的應用程式中程序的生命週期內生成。
由於 TCP/IP 協議在網際網路建立期間已標準化,“網路套接字”一詞最常用於網際網路協議套件的上下文中,因此被稱為“網際網路套接字”。在這種情況下,套接字的地址(傳輸協議、IP 地址和埠號的三元組)用於將其外部標識給其他主機。
節點內部程序間通訊 (IPC) 的軟體端點通常被稱為套接字,它經常使用與網路套接字相同的 API。
管道是使用“Pipe”系統呼叫形成的,套接字是使用“socket”系統呼叫生成的。在網路上,套接字允許雙向 FIFO 通訊。在連線的兩端,都會形成連線到網路的套接字。每個套接字都有其唯一的地址。該地址由 IP 地址和埠號組成。
在大多數客戶端-伺服器應用程式中,都使用套接字。伺服器構建一個套接字,將其連線到網路埠,並等待客戶端連線到它。建立套接字後,客戶端嘗試連線到伺服器套接字。連線建立後,資料就開始傳輸。
套接字型別
**資料報套接字** − 資料報套接字是一種網路套接字,其中資料包的傳送和接收無需建立連線。它類似於郵箱。信件(資料)被收集並投遞(傳輸)到郵箱(接收套接字)。它是一種無連線的套接字。
**流套接字** − 流套接字是計算機作業系統中的一種網路套接字,它提供面向連線的、有序的、獨特的無記錄邊界的資料流,以及建立和銷燬連線以及檢測錯誤的明確機制。它類似於電話。在電話之間(兩端)建立連線。
下圖顯示了完整的客戶端和伺服器互動:

| 函式呼叫 | 描述 |
|---|---|
| create() | 建立套接字 |
| bind() | 這是套接字識別符號,類似於聯絡某人的電話號碼。 |
| connect() | 準備建立連線? |
| listen() | 準備傳送訊息 |
| accept() | 確認類似於接聽傳送者的電話。 |
| write() | 傳送資料 |
| read() | 接收資料 |
| close() | 結束連線 |
廣告
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP