【问题标题】:Why is a port necessary for running a server or database locally?为什么本地运行服务器或数据库需要端口?
【发布时间】:2014-08-15 17:37:01
【问题描述】:

有人可以解释为什么在本地运行时需要使用端口吗? 我认为原因是因为可以远程运行相同的软件,在这种情况下指定一个端口是必要的。 当数据库或服务器在本地运行时,来自本地运行的 Web 浏览器的请求真的“通过指定的端口”吗?

【问题讨论】:

  • 我对计算机科学知之甚少。
  • 这就像当您需要去洗手间小便时知道要通过哪扇门。你不希望有人试图在你的床上撒尿。

标签: port


【解决方案1】:

好问题。事实上,有一些仅限本地的通信协议,例如管道和 UNIX 域套接字,它们实际上并不需要端口号来操作。这是因为它们引用仅在计算机本身上有效的文件或其他标识符。

但是,大多数服务器都是为 TCP/IP 连接而设计的。 TCP/IP 本身在协议中指定了一个端口号。它通常用于远程使用,但是当用于 TCP/IP 的服务器“在本地主机上”运行时,它必须提供一个端口号以满足 TCP 协议。

端口号还允许多台服务器共存于一台计算机上,所有服务器都运行在不同的端口上。对于没有端口号的协议,这是通过为每个服务器使用不同的标识符(例如文件系统文件)来实现的。

一些服务器可以在 TCP/IP 和本地套接字上运行。例如,MySQL 既可以通过通常的 TCP 端口接受连接,也可以通过本地套接字 (mysql.sock) 接受连接。通过本地套接字连接仅供本地用户使用,在某些系统上可能更快。

【讨论】:

【解决方案2】:

有时您的计算机中可能安装了一些其他软件,这些软件可能使用相同的端口。例如 Apache 和 IIS:假设您将端口 8080 设置为 IIS 作为默认值,如果您之前安装了 Apache 设置端口 8080 呢?

另一个例子是,如果您安装了 Mysql Workbench,并且几天后安装了 XAMPP,如果您不更改与 3306 不同的一个实例的端口,您可能会遇到端口问题

这就是为什么即使在本地也需要指定端口的原因。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-16
    • 1970-01-01
    • 2011-06-25
    • 2018-02-14
    • 1970-01-01
    相关资源
    最近更新 更多