是否可以要求服务器端在不使用 RMI 的情况下执行方法?
Is it possible to ask server side to execute a method without using RMI?
我无法尝试这个,因为我没有 java 网络服务器。我的想法是通过套接字向服务器发送一个数字。发送的号码将取决于用户的响应或要求。
例如:
考虑一个井字游戏。假设用户输了比赛,我希望用户输入 yes
重播或输入 no
退出。
如果用户输入yes
,程序会向套接字的outputstream
写入一个数字(例如1)。现在,服务器使用 inputstream
接收数字并将其存储在整数变量中。如果发现输入的数字是 1
,则重新开始游戏。将有处理这些收到的数字的方法。
是否可以通过这种方式与服务器通信并调用远程方法?
如果是,为什么设计 RMI 可以通过编码完成(非常容易)?
Is it possible to communicate with the server
是的。
and invoke a remote method
没有。服务器正在本地调用该方法。您只是向它发送一个数字,告诉它该怎么做。这里没有远程方法调用。
why was RMI designed when it can be done by coding (pretty easily)?
RMI 提供了直接调用远程方法的语法,无需担心:
- 连接
- 方法数
- 请求和响应的线路规范
- 整理参数
- 解组响应
- 将一些响应变成异常
- 确保所有响应都遵守异常语义
- 动态class加载
- ...
您当然可以自己重新实现所有这些,当然 RMI 也在 Java 中实现,但不要低估范围或难度。
我无法尝试这个,因为我没有 java 网络服务器。我的想法是通过套接字向服务器发送一个数字。发送的号码将取决于用户的响应或要求。
例如:
考虑一个井字游戏。假设用户输了比赛,我希望用户输入 yes
重播或输入 no
退出。
如果用户输入yes
,程序会向套接字的outputstream
写入一个数字(例如1)。现在,服务器使用 inputstream
接收数字并将其存储在整数变量中。如果发现输入的数字是 1
,则重新开始游戏。将有处理这些收到的数字的方法。
是否可以通过这种方式与服务器通信并调用远程方法?
如果是,为什么设计 RMI 可以通过编码完成(非常容易)?
Is it possible to communicate with the server
是的。
and invoke a remote method
没有。服务器正在本地调用该方法。您只是向它发送一个数字,告诉它该怎么做。这里没有远程方法调用。
why was RMI designed when it can be done by coding (pretty easily)?
RMI 提供了直接调用远程方法的语法,无需担心:
- 连接
- 方法数
- 请求和响应的线路规范
- 整理参数
- 解组响应
- 将一些响应变成异常
- 确保所有响应都遵守异常语义
- 动态class加载
- ...
您当然可以自己重新实现所有这些,当然 RMI 也在 Java 中实现,但不要低估范围或难度。