日期:2014-05-20  浏览次数:20723 次

怎么检测第三方软件是否正在运行
请教一下各位,怎么实现对一个第三方软件是否正常运行进行监控,B/S还好,可以通过URL模拟访问,但C/S架构一般是怎么判断的呢?譬如QQ软件是否开着这个要怎么判断,是监控相应进程或端口?谢谢!

------解决方案--------------------
我能想到的是,开个timer检测软件的进程是否活着。
但是java在jvm里运行,对进程控制不够。
要用的话必须调用本地代码jni来实现,那么就不能夸平台了。

不过知道JDK1.7里有加入新的api处理这事不。


你说的方法,也许能做,但不一定准。
比如你知道QQ需要使用哪些端口,那么你也许试图开。
new ServerSocket(QQ端口号); 
如果catch到例外,认为QQ活着,如果没有例外说明QQ挂了。

但是你不能保证其他软件不用这些端口吧。。。。如果不用考虑你的方法也许行。
那么也仅对使用网络端口的程序有效。