服务发现(Win 服务器,Android 客户端)

Service Discovery (Win Server, Android Clients)

我有一对主要工作的服务器 (Windows) 和客户端 (Android) 应用程序,它们需要 运行 在 LAN 上,它们几乎什么都不知道大约直到被解雇。我能做的唯一假设是 WIFI 和 DHCP 分配的 IP 地址。

我需要一种让客户端找到服务器的机制。我有一个完整的字母表选择汤,但我以前没有这样做过,所以我向你,Whosebug 的好人征求意见。

NSD(网络服务发现)似乎是 Android 上的首选方法,但在 Windows 上似乎不存在。是否有可互操作的 Windows 协议?

我的印象是,在我的服务器出现之前,如果不配置 DNS,DNS-SD 将无法工作。

因为我只需要知道服务器的 IP,我很想创建自己的多播组并让服务器自行宣布。有没有理由不采用这种方法?

太吵了

客户端可以确定自己的ip。并且知道服务器的ip差不多。只有最后一个字节组不同。

只需创建一个循环并尝试连接一个具有 IP 地址的套接字 'around' 它是自己的 IP 地址。

您将在几秒钟内获得服务器 ip。先设置一个小的套接字超时值。

Android 服务发现与 Bonjour 兼容。

使用 Mono.Zeroconf 拨打 Bonjour 电话。目前,Mono.Zeroconf 中的代码有效,但分布式二进制文件 无效 。我不得不重新编译它们,但它有效。