我正在调查一个项目,以创建一个在Windows终端服务环境中监听“localhost”的应用程序。
我目前无权访问测试环境,但我想检查此设计,尤其是localhost / loopback 127.0.0.1在多用户计算机中的含义。
如果我的应用程序绑定侦听127.0.0.1:40000的TCP套接字,那么哪些客户端可以访问它? - 它会在机器/服务器上的所有用户的所有会话中对客户开放吗? - 或者只是每个用户/会话?
我希望/猜测后者。如果是这种情况,那么每个会话中的每个用户都可以在127.0.0.1:40000上打开自己运行监听器的应用程序吗?
感谢您对此设计问题的任何帮助。
答案 0 :(得分:2)
我会让你失望,这是前者。
TCP / IP套接字没有“用户”或“所有权”的概念:给定网络接口上有65535个可用端口,并且只能有一个进程在任何给定的进程上进行侦听。用户拥有该进程的内容无关紧要 - 如果您有User1的进程正在侦听127.0.0.1:40000,那么User2的进程'尝试侦听同一端口将失败。
同样,没有固有的访问控制:如果在给定端口有一个监听端口,那么可以到达该端口的计算机的任何东西都可以访问该端口(换句话说,监听和连接进程 - 服务器和客户端 - 不需要属于同一个用户;他们甚至可能在不同的主机上。)