答案 0 :(得分:1)
使用Bonjour框架。设备必须位于同一子网上,但您可以在不使用服务器的情况下连接它们。 Apple为Bonjour框架提供了一些很好的示例代码。我没有使用Bonjour发布应用程序,但我已经使用Bonjour完成了一些开发/概念验证应用程序。
答案 1 :(得分:1)
基本上你需要多播DNS(Apple称之为Bonjour)。有关Apple文档的开头,请参阅http://developer.apple.com/opensource/,并查看http://mobileorchard.com/tutorial-networking-and-bonjour-on-iphone/以获得精彩的文章。
答案 2 :(得分:0)
如果所有设备都在同一个局域网上,您可以让他们使用广播或多播UDP相互发现,然后(一旦他们知道彼此的IP地址)通过UDP或TCP直接相互通信。 (当然,所需的直接TCP连接数随着设备数量的增加而迅速增加,因此只会扩展到一定程度.UDP可以进一步扩展,因为它不需要在每对之间建立连接设备)。
真正的问题是,如果(很可能)设备位于Internet上的不同位置,并且其中一些或全部位于NAT和防火墙之后。在这种情况下,您可以依赖的唯一事情是设备能够建立传出的TCP连接,在这种情况下,您几乎需要一台服务器才能连接到它们,因为它们无法直接连接到每个其他在大多数情况下(出于安全原因,NAT /防火墙将过滤掉传入的TCP连接数据包)。
答案 3 :(得分:0)
通过蓝牙查看Peer-to-Peer connectivity(这是iOS中GameKit API的一部分)。