2011-09-16 51 views
1

我正在調查一個項目,以創建一個將在Windows終端服務環境中偵聽「localhost」的應用程序。localhost在Windows終端服務服務器中的含義是什麼?機器還是會話?

我目前無法訪問測試環境,但我想檢查此設計,特別是localhost/loopback 127.0.0.1在多用戶計算機中的含義。

如果我的應用程序綁定了偵聽127.0.0.1:40000的TCP套接字,那麼客戶端將能夠訪問它? - 對機器/服務器上所有用戶的所有會話中的客戶端是否開放? - 或者它只是每個用戶/會話?

我希望/猜測後者。如果是這種情況,那麼每個會話中的每個用戶都可以打開他們自己的應用程序,在127.0.0.1:40000上運行偵聽器?

感謝您對此設計問題的任何幫助。

+0

致投票結束的人:這是一個關於我是否可以開發在終端服務中使用本地主機的程序的問題。恕我直言,這絕對是一個軟件開發問題,所以符合FAQ。 – Stuart

回答

2

我會讓你失望的,這是前者。

TCP/IP套接字沒有「用戶」或「所有權」的概念:給定網絡接口上有65535個可用端口,並且只有一個進程在任何給定網絡接口上偵聽。用戶擁有該進程的內容是無關緊要的 - 如果您的用戶1的進程在127.0.0.1:40000上進行偵聽,則User2的進程嘗試偵聽同一端口將失敗。

同樣,沒有內在的訪問控制:如果在給定的端口有監聽端口,任何可以到達該端口的計算機的端口都可以訪問該端口(換言之,監聽和連接進程 - 服務器和客戶端 - 不需要屬於同一用戶;他們甚至可能在不同的主機上)。

+0

感謝Piskvor--這確實有道理。我想我只是不知道終端服務是什麼......我希望每個用戶都有一個獨立的虛擬機 - 每個虛擬機都有自己的本地主機適配器,但我想我需要了解會話與虛擬機不同。謝謝! – Stuart

+0

@Stuart:不客氣。至於TS,通常它們都在同一臺計算機上執行,沒有任何虛擬化。每個用戶只能獲得他們自己的虛擬*顯示器*,但幾乎所有 - 計算機的其他部分(網絡,流程等)是共享的。 – Piskvor

+0

再次感謝 - 我正在學習:)這是否意味着他們也會共享像「程序文件」這樣的所有文件夾 - 他們只是獲得他們自己的「我的文檔」? (對不起 - 應該將這些問題作爲單獨的問題提出 - 或者應該只是閱讀!) – Stuart

相關問題