gpt4 book ai didi

java - 自动刷新Java中连接的IP地址列表

转载 作者:行者123 更新时间:2023-12-01 09:47:06 30 4
gpt4 key购买 nike

我正在编写一些代码,用于从连接到同一网络的计算机发送/接收信息。我有一种方法可以获取当时在线计算机的 IP,但是当新 IP 出现/消失时我需要刷新列表。

我不认为拥有线程和 while (true) 调用该方法是最好的解决方案。我想不出其他任何东西 - 有什么建议吗?

以下是我用来搜索网络上 Activity 计算机的代码示例:

public List<String> searchApps() {
List<AddressServiceTypePair> ip = this.networkController.getDiscovered(); //returns an ArrayList<AddressServiceTypePair>

onlineApps.clear();
for (AddressServiceTypePair service : ip) {
onlineApps.add(service);
}

List<String> list = new ArrayList<>();
for (AddressServiceTypePair aux : onlineApps) {
list.add(aux.getIP());
}
return list;
}

最佳答案

根据发布的不清楚的代码示例,很难进行概括。但是,我假设您正在编写某种类型的客户端和服务器代码。没有简单的方法可以通知网络上添加/删除的计算机。如果您需要最新的 IP 列表,我会感到惊讶。您可以将 IP 发现方法置于无限循环中,并简单地包含 Thread.sleep(milliseconds);在你的循环中。

如果您确实需要极其最新的信息,您可以让每台连接的计算机在单独的线程中连接到另一个端口上的套接字,然后尝试从套接字读取 - 这样您会得到一个异常,如下所示一旦套接字关闭。您可以在创建 Socket 时添加客户端的 IP,然后您的 catch block 可以在 Socket 关闭时更新 Activity IP 列表,表明客户端不再连接。

关于java - 自动刷新Java中连接的IP地址列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37899279/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com