从另一个节点上的另一个java程序控制java程序

问题描述 投票:0回答:3

我之前从未在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小时后我想我可以在这里得到更多的帮助,如果我在任何一个网站上得到/提供了答案,我会在两者上发布/更新答案并关闭两者帖子。

谢谢。

java swing networking
3个回答
0
投票

对于如何从另一个节点发送/接收请求,这属于一个更大的问题,相信我或不相信 - 比1或2个程序需要更多的工作。如果你把规模缩小到2个带有2个SD卡或其他的MCU,那将会容易得多。那应该是你的开始


0
投票

这是步骤。

  • 学习套接字编程
  • 单击按钮,从pc#2向pc#1发送消息
  • 在pc#1上获取消息,如果它与pc#2发送的消息相同,则递增label的当前整数值。

0
投票

我已经完成了我需要使用Java套接字编程的程序,所有工作都非常好并且应该如此,并且与RMI相比不那么棘手,而且我面临的是安全管理器问题。

我使用String Tokenizer来标记客户端PC发送的String,以提取由空格分隔的信息,例如(clientNo commandType queueType currentQueueNo)。

clientNo =向服务器发送请求的客户端的编号ID commandType =客户端请求执行的命令/功能的类型。 queueType =客户端请求的队列类型currentQueueNo =客户端服务的当前/最后队列号

使用if函数,服务器PC将知道需要执行哪个方法,然后以字符串的形式回复客户端的答案,然后客户端将Answer设置为Label的新文本值。

我还使用了多线程,因此多个客户端可以连接到Socket Server PC而不会相互阻塞。

并且我记录了在jTextArea中完成的所有进程,因此用户或管理员将不断更新服务器pc和客户端之间的交互。

希望它足够明确作为答案。

© www.soinside.com 2019 - 2024. All rights reserved.