我有一对很大程度上工作的服务器(Windows)和客户端(Android)应用程序需要在局域网上运行,他们几乎不知道什么,直到启动。关于我可以做的唯一假设是WIFI和DHCP分配的IP地址。
我需要一种机制让客户端找到服务器。我有一个完整的字母表选择汤,但我之前不必这样做,所以我问你,StackOverflow的优秀人才,建议。
NSD(网络服务发现)似乎是Android上的首选方法,但在Windows上似乎不存在。是否存在可互操作的Windows协议?
我的印象是,如果没有在我的服务器出现之前配置DNS,DNS-SD将无法正常工作。
因为我需要知道的是服务器的IP,所以只需创建我自己的多播组并让服务器宣布自己的方式非常诱人。有没有理由不采用这种方法?
答案 0 :(得分:0)
太过分了。
客户端可以确定自己的ip。并且知道服务器的ip大致相同。只有最后一个字节组才会不同。
只需做一个循环并尝试连接一个带有IP地址的套接字'它自己的IP地址。
您将在几秒钟内获得服务器IP。首先设置一个小的套接字超时值。
答案 1 :(得分:0)
Android Service Discovery与Bonjour兼容。
使用Mono.Zeroconf进行Bonjour调用。目前,Mono.Zeroconf中的代码可以正常工作,但分布式二进制文件不。我不得不重新编译它们但它有效。