❶ socket通信原理
socket通信原理是一種「打開—讀/寫—關閉」模式的實現,伺服器和客戶端各自維護一個「文件」,在建立連接打開後,可以向文件寫入內容供對方讀取或者讀取對方內容,通訊結束時關閉文件。
Socket在應用層和傳輸層之間的一個抽象層,它把 TCP/IP 層復雜的操作抽象為幾個簡單的介面,供應用層調用實現進程在網路中的通信。Socket 起源於 UNIX,在 UNIX 一切皆文件的思想下,進程間通信就被冠名為文件描述符(file descriptor)。
Socket 保證了不同計算機之間的通信,也就是網路通信。對於網站,通信模型是伺服器與客戶端之間的通信。兩端都建立了一個 Socket 對象,然後通過 Socket 對象對數據進行傳輸。通常伺服器處於一個無限循環,等待客戶端的連接。
(1)socket網路通信是什麼意思擴展閱讀
SOCK_STREAM類型的套介面為全雙向的位元組流。對於流類套介面,在接收或發送數據前必需處於已連接狀態。用connect()調用建立與另一套介面的連接,連接成功後,即可用send()和recv()傳送數據。當會話結束後,調用closesocket()。帶外數據根據規定用send()和recv()來接收。
實現SOCK_STREAM類型套介面的通訊協議保證數據不會丟失也不會重復。如果終端協議有緩沖區空間,且數據不能在一定時間成功發送,則認為連接中斷,其後續的調用也將以WSAETIMEOUT錯誤返回。
SOCK_DGRAM類型套介面允許使用sendto()和recvfrom()從任意埠發送或接收數據報。如果這樣一個套介面用connect()與一個指定埠連接,則可用send()和recv()與該埠進行數據報的發送與接收。