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

时间:2018-12-25 07:05:30

标签: java swing networking

我以前从未在Java中进行过此类工作。

要求是:

同一局域网中至少有两台PC连接在一起。 每个都有运行的Java桌面程序。

假设PC#1上有Java1应用,而PC#2上有Java2应用。

  • PC#2上的Java2将能够找到另一个节点/ PC(通过提供的IP /主机名),并且能够连接到PC#1上的Java1。

  • PC#1上的Java1将能够授予Java2连接到其自身的权限,并控制Java1应用中可用的任何摇摆项。

  • 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应用程序上的labelNum的值。

我完全不知道如何执行此操作,通常我会在整个实习生中寻找可能的答案,这是我最后一个绝望的结局。

感谢您的宝贵时间。 (请原谅我可能不合适的英语)。

注意: 我已经在CodeRanch上发布了类似的问题,但是12小时后,我认为我可以在这里获得更多帮助,如果我在任何站点上都获得了答案,或者将答案提供给了我,则我将同时发布和更新答案并关闭这两个帖子。

谢谢。

3 个答案:

答案 0 :(得分:0)

这与如何从另一个节点发送/接收请求有关,这是一个更大的问题,无论您相信与否,它都要比1或2个程序进行更多的工作。如果您将规模缩小到2个带有2个SD卡的MCU或其他东西,那会容易得多。那应该是你的开始

答案 1 :(得分: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和客户端之间交互的最新信息。

希望它足够清晰。

答案 2 :(得分:0)

这是步骤。

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