-3

現在、Java で TCP/IP クライアントを作成しています。クライアントが実行できる唯一のことは、サーバーから送信されたコードを実行することです。私はこの質問を見てきましたが、私の問題は、コードが別のアプリケーションであるかのように実行されることですが、クライアントコードに文字列が含まれていて、サーバーが「文字列を読んでコンテンツを送り返す」というメッセージを送信した場合、そのコードは、その文字列が存在しない別のプログラムで実行されるため、クライアントはそうすることができません:-(

プログラムのソースコードに書かれているように、入力からコードを実行できる方法はありますか?

すべてのヘルプは大歓迎です:-)

例:

クライアントには、「string0001」という文字列が含まれています。クライアントは、サーバーが送信するコードを実行する必要があります。サーバーは、クライアントが実行できる Java コードのブロックを送信します。コードは次のように述べています。文字列の内容を確認し、この IP に送り返します。これで、クライアントは文字列を読み取り、「string0001」をサーバー IP に送り返すことができるはずです。

リンクが提供する解決策では、サーバーが送信したコードは別のプログラムであるかのように実行され、そのプログラムには、サーバーがクライアントに読み取りを要求した文字列は存在しません。

クライアントは、文字列が存在するクライアント ソースに記述されているかのように、コードを実行できるようになりました。

それが役立つことを願っています:-)

4

1 に答える 1

0

最初の問題は、送信されるソース コードが完全でなければならないことです。Java はオブジェクト指向言語であるため、実行するコードには、まだ送信されていないクラスへの参照が含まれる場合があります。

これは 2 番目の問題につながります...すべてのコードをいつ受信したか、およびコードが存在する必要があるパッケージとファイルをどのように知るのでしょうか?

コードがメソッドやクラスのない非常に単純なルーチンである場合は、メソッドを使用してクラスを作成し、渡されたコードをそのクラスに挿入して、メモリに保持することができます。

次に、ここで回答した質問と同様のルーチンを使用して、このコードをコンパイルできます。

于 2013-02-11T00:12:30.010 に答える