2011-12-28 43 views
-1

我一直在尝试好几天来尝试解决这个问题。今天又是一天充满尝试的事情,我最近的尝试只是失败而已。而不是仅仅关闭它,然后去思考'没有做到这一件事的另一天',我想我会在这里问。我现在在我的智慧结束。 CocoaAsyncSocket我无法工作,也没有任何教程或其他'解决方案',我找到了。这是我想要做的:如何轻松地通过wifi在2个IPHONE或MAC之间发送数据?

用户从列表中选择一个计算机或iphone上的wifi网络连接,这也有应用程序运行。他们连接,按下另一个按钮,数据从第一个设备发送到第二个。第二个设备也可以发回事情。这是一个点对点网络。

艾米帮助任何人都可以给我感激。我真的只需要一个简单的方法来做到这一点,因为它的使用量与实施需要多长时间相比,开始并不值得。但我不想放弃这样的事情,我已经在很多场合看到了终点线,但却无法摆脱无数的障碍。

+0

你要发送什么样的数据?文本/二进制文件? – Devraj 2011-12-28 04:15:50

+0

你有看过这个:http://developer.apple.com/library/ios/#samplecode/SimpleNetworkStreams/Listings/Read_Me_About_SimpleNetworkStreams_txt.html#//apple_ref/doc/uid/DTS40008979-Read_Me_About_SimpleNetworkStreams_txt-DontLinkElementID_8 – sosborn 2011-12-28 04:30:08

+0

看看GameKit – bshirley 2011-12-28 04:38:30

回答

4

实际上是由三个部分你的问题:

  1. 如何检测WiFi连接(iPhone)
  2. 如何做广告/发现主机/服务?
  3. 如何在主机之间传输数据?

在低级别上,您可以使用TCP/IP连接(您在主机A的某个端口上侦听并从主机B连接到该主机)传输数据。然而,主机B需要知道主机A在同一个本地网络上的事实 - 这通常是由主机A在本地网络上发送广播消息(比如说通过UDP)完成的,它可以识别它,因此主机B可以确定A的IP地址,以便连接到它。最后,在非Mac设备上,只有当您检测到设备在WiFi网络上时,您才可能想要启动所有这些设置,因为否则它将无法工作。

实现上述所有(数据传输除外)并不是很简单,但幸运的是苹果为此提供了几种工具:SCNetworkReachability提供了一个API,当设备加入Wifi网络时会通知您(仅适用于iOS,在Mac OS X上不需要)。然后,可以使用Bonjour实施服务广告和发现:您在一台主机上使用NSNetService注册自己的服务,另一台可以拨打NSNetServiceBrowser浏览本地网络以查找可用的对等端。最后,您可以在发现所需服务后使用流传输数据。查看Apple文档 - 所有提到的工具都有示例代码。我不会打电话很简单,但那是因为你想要的技术上不是很简单;)。

相关问题