从另一个节点上的另一个java程序控制java程序
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了从另一个节点上的另一个java程序控制java程序相关的知识,希望对你有一定的参考价值。
我之前从未在java中做过这种工作。
要求是:
在同一个LAN网络中至少连接2台PC。每个都有一个运行Java桌面程序。
假设PC#1上有Java1应用程序,PC#2上面有Java2应用程序。
- PC#2上的Java2将能够找到另一个节点/ PC(通过提供的IP /主机名),并且能够连接到PC#1上的Java1。
- PC#1上的Java1将能够允许Java2连接到自身并控制Java1应用程序中可用的任何swing项。
- Java1应用程序将有一个jButton和一个jLabel,这就是按钮的作用:
private void btnNextActionPerformed(java.awt.event.ActionEvent evt) { /* labelNum has been declared out of this function and has "0" as it's initial text value */ int num = Integer.parseInt(labelNum.getText()); num ++; labelNum.setText(String.valueOf(num)); }
虽然Java2上只有一个jButton,当连接到PC#1上的Java1时,Java2上的jButton将执行与Java1应用程序上的jButton相同的功能,它将在Java1 App上增加labelNum的值。
我完全不知道如何做到这一点,我通常搜索整个实习生可能的答案,问这里是我最后一个绝望的度假胜地。
谢谢你的时间。 (请原谅我可能不合适的英语)。
注意:我在CodeRanch上发布了类似的问题,但是12小时后我想我可以在这里得到更多的帮助,如果我在任何一个网站上得到/提供了答案,我会在两者上发布/更新答案并关闭两者帖子。
谢谢。
对于如何从另一个节点发送/接收请求,这属于一个更大的问题,相信我或不相信 - 比1或2个程序需要更多的工作。如果你把规模缩小到2个带有2个SD卡或其他的MCU,那将会容易得多。那应该是你的开始
这是步骤。
- 学习套接字编程
- 单击按钮,从pc#2向pc#1发送消息
- 在pc#1上获取消息,如果它与pc#2发送的消息相同,则递增label的当前整数值。
我已经完成了我需要使用Java套接字编程的程序,所有工作都非常好并且应该如此,并且与RMI相比不那么棘手,而且我面临的是安全管理器问题。
我使用String Tokenizer来标记客户端PC发送的String,以提取由空格分隔的信息,例如(clientNo commandType queueType currentQueueNo)。
clientNo =向服务器发送请求的客户端的编号ID commandType =客户端请求执行的命令/功能的类型。 queueType =客户端请求的队列类型currentQueueNo =客户端服务的当前/最后队列号
使用if函数,服务器PC将知道需要执行哪个方法,然后以字符串的形式回复客户端的答案,然后客户端将Answer设置为Label的新文本值。
我还使用了多线程,因此多个客户端可以连接到Socket Server PC而不会相互阻塞。
并且我记录了在jTextArea中完成的所有进程,因此用户或管理员将不断更新服务器pc和客户端之间的交互。
希望它足够明确作为答案。
以上是关于从另一个节点上的另一个java程序控制java程序的主要内容,如果未能解决你的问题,请参考以下文章
从另一个线程传输数据,与 Java 和 RXTX 库的慢速串行链接