相关疑难解决方法(0)

使用Java动态查找LAN中的其他主机

前段时间我开发了一个小的局域网聊天应用程序.在Java中允许与其他主机聊天,发送图像等.虽然它是为了娱乐而创建的,但现在它被用于我工作的地方.

目前,应用程序上没有"聊天服务器".每个客户注册,更新它的状态等等(我喜欢对称设计的想法,而不依赖于在其他机器上运行的服务器).

相反,每个主机都是一个客户端/服务器,它有一个hosts.properties文件,其中包含其他主机的主机名,并且 - 例如 - 在发送大量消息/图像/其他内容时向每个主机广播.

一开始只有几个主机,所以这个hosts.properties文件不是问题.但随着用户数量的增加,更新该文件的需求有点令人生畏.所以现在我决定摆脱它,每次应用程序.启动,动态地找到其他活动主机.

但是,我找不到正确的实现方法.我尝试启动不同的线程,每个线程都在一个已知的IP地址范围内搜索其他主机.像这样的东西(为了便于阅读而简化):

/** HostsLocator */
public static void searchForHosts(boolean waitToEnd) {
    for (int i=0; i < MAX_IP; i+= MAX_IP / threads) {
        HostsLocator detector = new HostsLocator(i, i+(MAX_IP / threads - 1)); // range: from - to
        new Thread(detector).start();                 
    }
}

public void run() {
    for (int i=from; i<=to; i++)
        findHosts( maskAddress + Integer.toString(i) );
}

public static boolean findHosts(String IP) {
    InetAddress address = InetAddress.getByName(IP);
    if …
Run Code Online (Sandbox Code Playgroud)

java networking chat

6
推荐指数
1
解决办法
7621
查看次数

DNS-SD:使用“mdnsjava”的经验?

我现在正在将 DNS-DS 库“ mdnsjava ”实现到我的 Android 项目中,正如在多个位置提到的那样,例如在这里:

除了 JMDNS 之外,还有其他用于 bonjour/zeroconf 的 Java 库吗?

在实现时,我想知道这个实现是否真的使用了任何缓存和/或它的性能有多稳定。

现在我在过去的两年里一直在使用 jmDNS,但是这个库在暂停发现(应用程序在后台)时无法保留缓存。

此外,jmDNS 在发现设备时速度缓慢且不稳定。

那么,有人有mdnsjava的经验吗?

java dns-sd mdnsjava

5
推荐指数
1
解决办法
2197
查看次数

发现TCP/IP套接字?

我正在使用Objective-C和Java,但我认为这个问题与语言无关.

我有一个iOS客户端通过TCP/IP与Java服务器通信.现在我需要告诉至少一方当事人的IP地址.有没有一种标准方式可以"发现"IP地址(从一方或另一方)?

此外,如何切换到UDP会影响答案?

sockets udp tcp-ip

1
推荐指数
1
解决办法
1272
查看次数

标签 统计

java ×2

chat ×1

dns-sd ×1

mdnsjava ×1

networking ×1

sockets ×1

tcp-ip ×1

udp ×1