我以前从未在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小时后,我认为我可以在这里获得更多帮助,如果我在任何站点上都获得了答案,或者将答案提供给了我,则我将同时发布和更新答案并关闭这两个帖子。
谢谢。
答案 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)
这是步骤。