任何人都可以解释什么是端口、套接字和进程的最简单定义,以及这三者之间的关系是什么。
提前致谢。
任何人都可以解释什么是端口、套接字和进程的最简单定义,以及这三者之间的关系是什么。
提前致谢。
一个类比可以帮助你理解进程、套接字、端口以及它们之间的关系。
进程就像房子,套接字就像它的门。当一个进程想要向另一台主机(或终端系统:台式机、笔记本电脑、手机等)上的另一个进程发送消息时,消息会被发送到它的门外(套接字)。当消息到达目的主机时,通过接收进程的门(socket),接收进程对收到的消息进行操作。
简而言之,一个进程通过称为套接字的软件接口向网络发送消息并从网络接收消息。进程是在终端系统中运行的程序。
端口 是一种机制,它允许计算机同时支持与网络上的计算机和程序的多个通信会话。端口将请求定向到可以在该 IP 地址找到的特定服务。将 IP 地址想象成公寓楼的街道地址,将端口(只是一个 16 位数字)想象成所述建筑物中的公寓号码。
如需更深入地了解端口和套接字,请参阅:https ://stackoverflow.com/questions/152457/what-is-the-difference-between-a-port-and-a-socket
资料来源:
在计算机上运行的软件应用程序是一个进程。
当此应用程序提供某种网络服务(例如 Web 服务器)时,客户端需要通过网络联系此服务。首先,它们需要有计算机的 IP 地址,以允许网络在客户端和服务器之间传输数据包。
现在,由于计算机/服务器可以提供许多不同种类的网络服务,因此需要一种方法来处理所述服务器上的所需服务。为此,编号端口用作一种子地址。大多数服务都有一个他们通常使用的众所周知的端口号,例如用于 Web 服务器的 TCP 端口 80。应用程序/进程正在其服务端口上侦听新连接。进入此端口的任何连接或数据都由操作系统传递给进程。
当客户端想要与 Web 服务器通信时,它会在其自己的任何端口与 Web 服务器 IP 地址上的服务端口之间打开一个连接 - 一个套接字。您可以在 URL 中看到这一点:http: //192.168.1.100 :80表示“打开到 TCP(由HTTP暗示)端口 80 的连接并使用 HTTP 协议获取那里的任何内容”。由于 HTTP 按标准使用端口 80,因此可以省略 ":80" 部分。