我目前正在用Java编写TCP / IP客户端。客户端应该能够做的唯一事情就是运行服务器发送给它的代码。 我见过this question,但我的问题是代码会像是另一个应用程序一样运行,但是如果客户端代码包含一个字符串并且服务器发送一条消息说,请读取该字符串并发送回内容,然后客户端将无法这样做,因为该代码将在该字符串不存在的另一个程序中执行: - (
那么有没有一种方法可以从输入中运行代码,就好像它是在程序的源代码中编写的一样?
非常感谢所有帮助: - )
示例:
客户端包含一个表示“string0001”的字符串。 客户端应该运行服务器发送的代码。 服务器发送一个客户端可以执行的java代码块。 代码说:检查字符串的内容并将其发送回此IP。 客户端现在应该能够读取字符串并将“string0001”发送回服务器ip。
使用链接提供的解决方案,服务器发送的代码将像其他程序一样执行,并且在该程序中,服务器请求客户端读取的字符串不存在。
客户端现在能够运行代码,就像它是在客户端源中编写的那样,字符串存在。
希望有所帮助: - )
答案 0 :(得分:0)
第一个问题是发送的源代码必须完整。 Java是一种面向对象的语言,因此要执行的代码可能引用了尚未发送的类。
导致第二个问题......它如何知道何时收到所有代码,代码需要包含哪些包和文件?
如果代码是一个非常简单的例程,没有方法或类,你可以创建一个带有方法的类,并将传递的代码插入其中,然后将其保存在内存中。
然后,您可以使用与回答here的问题类似的例程来编译此代码。