多用户 Windows 服务器上的端口号处理
Posted
技术标签:
【中文标题】多用户 Windows 服务器上的端口号处理【英文标题】:Port number handling on a multi user Windows server 【发布时间】:2015-09-29 20:59:05 【问题描述】:我正在开发一种工具,该工具将由同一终端服务器上的多个用户运行。该工具使用 TCP 套接字在多个进程之间进行 IPC。由于该工具的多个实例将由多个登录用户同时运行,我想知道 Windows 服务器上的端口是如何管理的?例如,它们是虚拟端口的概念,然后操作系统可以将其映射到系统范围的唯一端口,还是为不同用户运行的工具需要在用户空间中处理这个问题?
【问题讨论】:
也许你不应该使用 TCP。使用具有更好的命名空间隔离的命名管道。 @usr 我将 zmq 用于 IPC。它不支持 Windows 上的命名管道。 【参考方案1】:工具的实例都需要监听不同的端口号,或者同一个端口号不同的IP地址。
[假设他们完全在听,虽然没有说明,但这是唯一真正令人担忧的来源。]
【讨论】:
听力不是唯一的问题。任何本地绑定,无论是用于侦听还是连接,都受可用端口的限制。 @RemyLebeau 本地绑定从来都不是必需的,显然,在某些 *** 情况下,我在 25 年的网络编程中从未遇到过。编辑被拒绝。 总是有一个本地绑定,无论是来自bind()
的显式绑定还是来自connect()
的隐式绑定。客户端和服务器都必须小心本地端口耗尽。在某些与 *** 无关的情况下,客户端可能需要使用显式绑定(协议要求等)。
@RemyLebeau 如果本地端口用尽,除了开始关闭一些套接字之外,任何人都无能为力,这不是问题所在。
感谢 EJP。是的,有一个监听套接字。然后我将修改工具以动态获取可用端口。以上是关于多用户 Windows 服务器上的端口号处理的主要内容,如果未能解决你的问题,请参考以下文章