1) Bonjour 很容易与 Java 应用程序配合使用。如果你特别自虐,你可以编写自己的基于 Java 的 mDNS (Bonjour) 响应程序(我已经做到了,这不是火箭科学),但最快的方法是在你的 http 服务器中使用jMDNS来宣传它存在。我不会复制和粘贴代码示例,但它们对于大多数应用程序来说已经足够了。
在 iOS 端,NSNetService是你的朋友。从根本上说,它涉及在后台启动响应程序以查找服务(即您的 Java 应用程序),然后在出现/消失时调用委托:
id delegateObject; // Assume this exists.
NSNetServiceBrowser *serviceBrowser;
serviceBrowser = [[NSNetServiceBrowser alloc] init];
[serviceBrowser setDelegate:delegateObject];
[serviceBrowser searchForServicesOfType:@"_http._tcp" inDomain:@""];
有一个指南可以解释这一切。该协议已经 10 多年没有改变,您指望所有支持它的现代 iOS/OS X 版本。jMDNS 库在这个阶段也经过了很好的实战测试。
如果您不希望搜索 的其他应用程序可以看到它,您可以考虑创建自己的服务类型_http._tcp.
,尽管这只是一个装饰性的东西。
2) 最简单的方法是 HTTP 基本身份验证;您没有说明您的应用程序支持哪种身份验证或如何在客户端发出 HTTP 请求,但这已经很好地涵盖了。