有人可以解释为什么在本地运行时需要使用端口吗? 我认为原因是因为可以远程运行相同的软件,在这种情况下,指定一个端口是必要的。 当数据库或服务器在本地运行时,来自本地运行的Web浏览器的请求确实是通过端口"指定?
答案 0 :(得分:2)
好问题。事实上,只有本地通信协议,例如管道和UNIX域套接字实际上不需要端口号来操作。这是因为它们引用的文件或其他标识符仅在计算机本身上有效。
但是,大多数服务器都是为TCP / IP连接而设计的。 TCP / IP本身指定协议中的端口号。它通常用于远程使用,但是当用于TCP / IP的服务器“在本地主机上”运行时,它必须提供满足TCP协议的端口号。
端口号还允许多台服务器在一台计算机上共存,所有服务器都在不同的端口上运行。对于没有端口号的协议,这是通过为每个服务器使用不同的标识符(例如文件系统文件)来实现的。
某些服务器可以在TCP / IP和本地套接字上运行。例如,MySQL既可以通过通常的TCP端口接受连接,也可以通过本地套接字(mysql.sock)接受连接。通过本地套接字连接仅为本地用户保留,并且在某些系统上可能更快。
答案 1 :(得分:1)
有时您的计算机中可能安装了可能使用相同端口的其他软件。例如Apache和IIS:假设您将端口8080设置为IIS默认情况,如果您之前安装了Apache set 8080,那该怎么办?
另一个例子是如果您安装了Mysql Workbench并且几天后安装XAMPP,如果您没有更改一个与3306不同的实例端口,则可能会遇到端口问题
这就是为什么有必要指定端口,即使是在本地。