套接字
套接字是一种帮助计算机软件通过网络进行通信的程序组件。“套接字”这个术语让人联想到一种可以插入网络电缆的物理插座,所有数据都会通过它传输。应用程序也会建立软件网络套接字来实现类似目的——应用程序通过网络连接发送和接收的所有数据,都会经过其套接字。
套接字为程序建立网络连接提供了一种标准方法。软件开发人员可以使用API创建由操作系统管理的套接字,这样就不需要从头编写自己的实现方式。当应用程序需要通过网络发送数据时,它会将数据写入套接字,就像将文件写入磁盘一样。操作系统会检测到这一点,并自动将数据包通过网络转发到其目的地。
每个套接字都有一个唯一的套接字地址,该地址由IP 地址和端口号组成。此地址同时标识运行套接字的具体计算机,以及创建该套接字的应用程序。运行在服务器上的应用程序在启动时创建套接字,并使其保持监听状态;客户端上的应用程序则可以根据需要打开和关闭套接字。套接字处于打开状态时,操作系统会监视其传入和传出的数据包,并查看每个数据包的套接字地址,以确定将其转发到哪里。
例如,当你使用网页浏览器访问网站时,浏览器会使用其 IP 地址和端口号连接到远程Web 服务器上的另一个套接字(HTTP连接使用 80,HTTPS连接使用 443)。浏览器会向此套接字发送特定网页的请求,操作系统检测到该请求后,会将其转发给 Web 服务器。当 Web 服务器将请求的页面发送回你的计算机时,操作系统会查看套接字地址,并知道应将其发送回网页浏览器。
测试你的知识