当前页面: 开发资料首页 → J2EE 专题 → 请进来看一下,给个思路。
请进来看一下,给个思路。
摘要: 请进来看一下,给个思路。
public String getResult(){
String result;
process =runtime.exec(cmd)
is = process.getInputStream();
isr=new InputStreamReader(is);
br =new BufferedReader(isr);
while( (line = br.readLine()) != null )
{
此处通过setLineToResult方法将line的值赋给result.
}
.......
.......
return result;
服务器端
----------------------------------------------------------------
客户端
通过RMI调用该方法,可以得到命令执行后的结果。但却不能同步
的得到结果,请问有什么方法可以在客户端同步得到命令执行的结果?
----------------------------------------------------------------
JDK1.4.1
你的“不能同步得到结果”具体是什么情况?
RMI说到底是socket,除非你设置延迟(RMI中socket client、socket server都是自动生成的,不会给你搞一个延迟进去),否则怎么会不同步?
楼上正解
哦 明白了
我没说清楚,其实我是想这样做:
1.服务器端的程序完成命令调用。
2.客户端的程序(jsp)实时的取得命令产生的结果,而
不是等服务器端的命令结束后才返回结果,列如调用PING命令,
Reply from 202.103.24.116: bytes=32 time<10ms TTL=252
Reply from 202.103.24.116: bytes=32 time<10ms TTL=252。
产生一条输出就向客户端发送一条输出。
3.将客户端得到的输出在网页上格式化打印,或做其它处理。
哦 我明白你的意思了
我以前也想写类似这样的东西
可是在启动process进程时,线程就堵塞了
个人能力而言,没写出这样的东西
不过我可以用其他语言实现
如果 谁可以写出这样的东西 希望可以加我QQ 以后交流~
330589751
mark!
为什么要做成这样?这个方法设计成这样与你的需求有差距,如果你采用rmi那么是不是调用的次数越少越好,直接把result升级成StringBuffer然后按约定切割可以不。如果非要按行返回。你可以指定一个行号。