1

我目前正在调查一个项目,以创建一个应用程序,该应用程序将在 Windows 终端服务环境中侦听“localhost”。

我目前无法访问测试环境,但我想检查这个设计,尤其是 localhost/loopback 127.0.0.1 在多用户机器中的含义。

如果我的应用程序绑定了一个监听 127.0.0.1:40000 的 TCP 套接字,那么哪些客户端能够访问它?- 它是否对机器/服务器上所有用户的所有会话中的客户端开放?- 还是只是每个单独的用户/会话?

我希望/猜测后者。如果是这种情况,那么每个会话中的每个用户都可以打开他们自己的应用程序并在 127.0.0.1:40000 上运行侦听器吗?

感谢您对此设计问题的任何帮助。

4

1 回答 1

2

我会让你失望的,是前者。

TCP/IP 套接字没有“用户”或“所有权”的概念:给定网络接口上有 65535 个可用端口,并且只能有一个进程在监听任何给定的端口。哪个用户拥有该进程无关紧要 - 如果您让 User1 的进程在 127.0.0.1:40000 上侦听,那么 User2 的进程在同一端口上侦听的尝试将失败。

同样,没有内在的访问控制:如果给定端口有一个监听端口,那么任何可以到达该端口计算机的东西都可以访问该端口(换句话说,监听和连接进程 - 服务器和客户端 - 不要需要属于同一个用户;他们甚至可能在不同的主机上)。

于 2011-09-16T09:16:01.803 回答