TCP / IP計算機網絡套接字編程簡介

套接字編程連接服務器和客戶機

套接字編程是TCP / IP網絡通信的基礎技術。 套接字是在網絡上運行的兩個程序之間的雙向鏈接的一個端點。 套接字提供了一個雙向通信端點,用於與另一個套接字發送和接收數據。 套接字連接通常在局域網( LAN )上或互聯網上的兩台不同計算機之間運行,但它們也可用於單台計算機上的進程間通信。

套接字和地址

TCP / IP網絡上的套接字端點每個都有一個唯一的地址,即IP地址和TCP / IP 端口號的組合 。 由於套接字綁定到特定的端口號,TCP層可以識別應接收發送給它的數據的應用程序。 創建新套接字時,套接字庫會自動在該設備上生成唯一的端口號。 程序員也可以在特定情況下指定端口號。

服務器套接字如何工作

通常情況下,服務器在一台計算機上運行,並具有綁定到特定端口的套接字。 服務器等待另一台計算機發出連接請求。 客戶端計算機知道服務器計算機的主機名和服務器正在偵聽的端口號。 客戶端計算機標識自己,如果一切順利,服務器允許客戶端計算機連接。

套接字庫

網絡程序員通常使用套接字庫,而不是直接編寫低級套接字API。 兩個常用的套接字庫是用於Linux / Unix系統的Berkeley套接字和用於Windows系統的WinSock

套接字庫提供了一組類似於那些程序員用於處理文件的API函數,比如open(),read(),write()和close()。