日期:2014-05-18  浏览次数:20560 次

有关通讯的项目问题
项目需求java实现一个功能:

1:在网页某个下拉框中选择一个字段Str

2:选择完成后连到另一台机子上,然后在那台机子上把Str当做一个参数在cmd里跑一条build的命令

3:跑完以后会在那台机子上生成build的log文件

4:把log文件返回给原先那台机子,并在网页的某一块区域显示出来

现在的想法是建立一个一对多的通讯,比如qq那样的传输  把参数str发给build所在的机子  然后把log放到一个共享目录下   原先的机子去共享下拿到log文件并在网页上建立一个Log的link.

感觉自己的思路很混乱,也不知具体该如何实现,现在网页和数据库都已经好了,剩下连接到远程机子build的功能不知如何去设计, 求助论坛里的大神们,还要五天项目就deadLine了,求帮忙 感激不尽!!
java?通讯?远程 build cmd

------解决方案--------------------
说的已经很明白了,就按这个需求做就行了。
不过,连接到远程机子build的功能这个就比较麻烦了,本地程序打开远程注解的cmd窗口不好实现,不过你可以传输一个bat文件到远程主机,传输完成就启动bat文件,让bat文件打开cmd窗口,执行build命令
------解决方案--------------------
http服务器端实现个ssh client,即web客户端传来指令参数后,你的http 服务端充当ssh客户用ssh协议访问并在目标机器上执行需要的指令然后获取目标机log的内容,

之后将log内容展现给web client可以用ajax轮询或者long polling

PS: 如果服务端和目标机器是windobe可以装cygwin,或者用telnet协议也可以试试,不过telnet服务即使在现在的windows里好像默认被disable了
------解决方案--------------------
我觉得http的一个request response回合就可以完成的

服务端收到参数后,执行build命令,待出结果后将log文件信息返回客户端,客户端解析并显示,

这里有什么问题吗?
------解决方案--------------------
项目项目结了么?可能帮不上什么忙了。
你可以在build机子上做一个webservice服务,开放两个接口:
一个buildByCmd(String str){},另一个叫getLog(){}。
客户端调用webservice的buildByCmd(String str),把str传进去,然后调用webservice的getLog()方法,打开日志文件,将内容回传显示到页面上,而不用将文件传过来,就算是本地要有这个文件,用回传的内容在本地生成也比回传文件好处理,而且高效。