2012-09-16 75 views
3

是否可以在连接到同一网络的两个iOS设备(没有网络)之间建立套接字连接?是否可以在两个iOS设备之间建立套接字连接

如果可能..是(CocoaAsyncSocket项目)对我有用吗?

我只是想从装置,它把应用程序在后台一个到设备B发送消息。当设备B收到邮件应显示通知应用程序返回前台。

它不适用于App Store,所以我不在乎Apple是否因此行为而拒绝该应用程序。

+0

我正在看你的另一个问题...对于这个问题,你是否也想通过wifi进行连接,而无需访问运营商的网络? – Nate

+0

我只是想使用** ad-hoc **这样的本地网络,但如果可能的话没有网络信号......感谢Nate的快速响应 – Husam

回答

2

,你可以做到这一点,并CocoaAsyncSocket将是有益的。如果您不必担心运营商网络的防火墙和过滤器,那么您当然应该能够构建在两台iOS设备上运行的客户端 - 服务器应用程序。一个打开服务器套接字来侦听,另一个(客户端)通过Wi-Fi网络连接。

尝试在Google上搜索(例如"CocoaAsyncSocket iPhone iOS site:stackoverflow.com")或直接在Stack Overflow上进行搜索。

这里的somebody who seems to have accomplished this

Another link

And a post from Robbie Hanson himself, referring you to the EchoServer projects in the github repository

EchoServer project

您可能需要使用静态 IP地址服务器设备(我不知道有多少通过Wi-Fi网络的配置控制你),或者使用其他一些机制让两个设备互相发现。

+0

您的话帮助了我,我成功地建立了一个客户端 - 服务器应用程序作为您的建议,我用'GCDAsyncSocket' ...但我面临另一个问题:( – Husam

+0

监听器设备无法读取在后台收到的数据,直到它成为前景...换句话说,它是委托冻结在后台模式..我想读取数据在后台收到以显示本地通知包含(显示应用程序)按钮XD ...你有任何想法解决吗?谢谢你 – Husam

+1

@Husam,我相信当你的应用程序转到背景时iOS会关闭套接字。这不适用于应用商店,[你可以尝试这个解决方案](http://stackoverflow.com/a/6000223/119114)。基本上,它有你的应用程序*假装*是一个'voip'应用程序,这将允许它保持网络连接前夕n在后台。我想你可能需要添加一个*后台任务*来完成这项工作......查看提供的链接。或者,如果您能够越狱手机,则可以[将应用程序构建为启动守护程序](http://chrisalvares.com/blog/7/creating-an-iphone-daemon-part-1/) – Nate

相关问题