TCP / IP计算机网络套接字编程简介

套接字编程连接服务器和客户机

套接字编程是TCP / IP网络通信的基础技术。 套接字是在网络上运行的两个程序之间的双向链接的一个端点。 套接字提供了一个双向通信端点,用于与另一个套接字发送和接收数据。 套接字连接通常在局域网( LAN )上或互联网上的两台不同计算机之间运行,但它们也可用于单台计算机上的进程间通信。

套接字和地址

TCP / IP网络上的套接字端点每个都有一个唯一的地址,即IP地址和TCP / IP 端口号的组合 。 由于套接字绑定到特定的端口号,TCP层可以识别应接收发送给它的数据的应用程序。 创建新套接字时,套接字库会自动在该设备上生成唯一的端口号。 程序员也可以在特定情况下指定端口号。

服务器套接字如何工作

通常情况下,服务器在一台计算机上运行,​​并具有绑定到特定端口的套接字。 服务器等待另一台计算机发出连接请求。 客户端计算机知道服务器计算机的主机名和服务器正在侦听的端口号。 客户端计算机标识自己,如果一切顺利,服务器允许客户端计算机连接。

套接字库

网络程序员通常使用套接字库,而不是直接编写低级套接字API。 两个常用的套接字库是用于Linux / Unix系统的Berkeley套接字和用于Windows系统的WinSock

套接字库提供了一组类似于那些程序员用于处理文件的API函数,例如open(),read(),write()和close()。