2011-09-16 5 views
1

私は現在、Windowsターミナルサービス環境内で "localhost"を聴くアプリケーションを作成するプロジェクトを検討しています。Windowsターミナルサービスサーバー内でlocalhostとは何を意味しますか?マシンやセッション?

私は現在テスト環境にアクセスできないが、この設計、特にローカルホスト/ループバック127.0.0.1がマルチユーザマシン内で何を意味するのかを確認したかったのです。

私のアプリケーションが127.0.0.1:40000でリッスンしているTCPソケットをバインドすると、どのクライアントがこれにアクセスできますか? - マシン/サーバー上のすべてのユーザーに対して、すべてのセッション内でクライアントに公開されますか? - それとも個々のユーザー/セッションになるのでしょうか?

私は後者を望んでいる/推測しています。この場合、各セッションの各ユーザーは127.0.0.1:40000のリスナーを実行している自分のアプリを開くことができますか?

このデザイン上の問題のお手伝いをありがとうございます。

+0

誰にでも投票を締め切りました。これは、ターミナルサービスでlocalhostを使用するプログラムを開発できるかどうかについての質問です。 IMHOは間違いなくソフトウェア開発に関する質問で、FAQに沿っています。 – Stuart

答えて

2

私はあなたを失望させます、それは前者です。

TCP/IPソケットには、「ユーザー」または「所有者」という概念がありません。特定のネットワークインターフェイスには65535個の使用可能なポートがあり、任意の1つのプロセスが1つしか受信できません。どのユーザーがプロセスを所有しているかは関係ありません。つまり、User1のプロセスが127.0.0.1:40000でリッスンしている場合、User2のプロセスは同じポートでリスンしようとすると失敗します。

同様に、固有のアクセス制御はありません。特定のポートにリスニングポートがある場合、そのポートでコンピュータに到達できるものすべて(つまり、リスニングおよび接続プロセス - サーバーとクライアント - 同じユーザーに所属する必要はなく、別のホストにいる可能性もあります)。

+0

ありがとうPiskvor - それは理にかなっています。私はちょうどターミナルサービスが何であるかわかりませんね...各ユーザーが別々のVMを持っていることを望んでいます - 各VMは独自のlocalhostアダプターを持っていますが、私はセッションがVMとは違うことを理解する必要があると思います。ありがとう! – Stuart

+0

@Stuart:ようこそ。 TSに関しては、通常、それらはすべて仮想化なしで同じコンピュータ上で実行されます。各ユーザーは自分のバーチャル*ディスプレイ*のみを取得しますが、それはほとんどすべてです。残りのコンピュータ(ネットワーク、プロセスなど)は共有されています。 – Piskvor

+0

もう一度感謝します - 私は学んでいます:)それは彼らがまた "プログラムファイル"のようなすべてのフォルダを共有することを意味します - 彼らは自分の "マイドキュメント"を取得するだけですか? – Stuart

関連する問題