套接字编程是TCP / IP网络上通信背后的基础技术。套接字是网络上运行的两个程序之间的双向链接的一个端点。套接字提供双向通信端点,用于与另一个套接字发送和接收数据。套接字连接通常在局域网(LAN)上或互联网上的两台不同计算机之间运行,但它们也可用于单台计算机上的进程间通信。
套接字和地址
TCP / IP网络上的套接字端点每个都有一个唯一的地址,即IP地址和TCP / IP端口号的组合。由于套接字绑定到特定端口号,因此TCP层可以识别应该接收发送给它的数据的应用程序。创建新套接字时,套接字库会自动在该设备上生成唯一的端口号。程序员还可以在特定情况下指定端口号。
服务器套接字如何工作
通常,服务器在一台计算机上运行,并且具有绑定到特定端口的套接字。服务器等待另一台计算机发出连接请求。客户端计算机知道服务器计算机的主机名和服务器正在侦听的端口号。客户端计算机识别自身,并且 - 如果一切正常 - 服务器允许客户端计算机连接。
套接字库
网络程序员通常使用套接字库,而不是直接编码到低级套接字API。两个常用的套接字库是用于Linux / Unix系统的Berkeley套接字和用于Windows系统的WinSock。
套接字库提供了一组API函数,类似于程序员用于处理文件的函数,例如open(),read(),write()和close()。