据我了解,您无法在两部 iPhone 之间建立连接(如果我错了,请纠正我)。所以我想做的是在客户端应用程序之间有一台服务器,它接受消息并将它们重新分发给适当的人。本质上,该应用程序将允许人们拥有一个共享地图,其中包含他们的位置并且每个人都可以对其进行注释。
1) 我一直在阅读和研究 CFStream 类,但我很想知道使用 C send() 和 recv() 函数是否更好。它们似乎更容易使用。CFStream 在原生 C 套接字函数上提供了什么使其成为更好的选择?
2)由于我需要手机主动监听更新的共享用户位置/来自其他用户的新注释,我的计划是定期让手机轮询服务器以获取其他用户的任何“新闻”(比如每分钟或两分钟)。无论如何,电话是否可以在应用程序中启动一个不断等待传入流量的新线程?能够让用户注释地图,将其推送到服务器,然后立即更新适当的用户地图,这将使生活变得更容易。
我一直在使用来自 O'Rielly Media 的 Jonathan Zdziarski 的 iPhone SDK 书中的示例套接字代码来尝试在服务器和 iPhone 模拟器(经典的敲门笑话服务器/客户端)之间发送消息。但是,在发送 1 或 2 条消息后,服务器会卡在“接收”中。当不是从模拟器发送代码时,代码运行完美,因为我似乎可以向客户端发送函数发送垃圾邮件并每次都从服务器获得响应。服务器会因为我使用 send() 和 recv() 而不是 CFRead 和 Write 流而挂起吗?