0

クライアントのローカル ネットワーク内のクライアント マシンでサーバーになることができる Java アプレットを作成することは可能ですか?

より具体的に言うと、私がやろうとしているのは、Web 上の非 Web トラフィックをトンネリングすることです。送信者はアプレットに送信し、アプレットは受信したデータをサーバーに転送します。

このようなことは可能ですか?邪魔になるかもしれない制限は何ですか?

注: アプレットがサーバーに接続できることはわかっていますが、それは問題ではありません。問題は、アプレットがローカルのクライアント側ポートで接続/データをリッスンできるかどうかです。

4

3 に答える 3

3

署名されていないアプレットは、元のホストにしか接続できません。

署名付きアプレットは、任意の接続を行うことができ、tcp-ip ポートでリッスンできます。

ソース: http://docs.oracle.com/javase/tutorial/deployment/applet/security.html

于 2012-06-06T19:59:04.240 に答える
1

サーバーはどこにも接続しません。サーバーはサーバー ソケットを開き、リッスンしています。

私が覚えている限り、サーバーソケットは MSIE では制限されていましたが、Netscape では許可されていました (そのようなブラウザを覚えていますか?) :)

個人的にはここ10年くらいアプレットを書いていないので、今あるブラウザがどうなっているのかわかりませんが、確認するのはとても簡単です。new ServerSocket(1234).accept();できるだけ短いアプレットを作成し、コードをそのinit()orstart()メソッドに入れるだけです。例外がスローされなかった場合は、サーバーとして機能するアプレットを作成できます。そうしないとできません。

利用可能なすべてのブラウザで試してみてください。20分の作業で完了です。幸運を。結果をお知らせいただければ幸いです。

于 2012-06-06T20:14:15.710 に答える
0

一般的にはできません。

その理由の1つは、アプレットがセキュリティに制約のある環境内で実行される傾向があることです。つまり、アプレットはサーバーソケットを開く機能を拒否されます。

このような制限を回避する方法はいくつかあります。基本的には、アプレットに特別なセキュリティポリシーを指定するか、特別な制約のないコンテナで実行できます。しかし、アプリケーションのコンテンツを標準のサーブレット、またはスタンドアロンサーバーに移植できるのに、なぜわざわざするのでしょうか。

于 2012-06-06T20:00:01.023 に答える