不使用Web服务的iphone应用程序通信

不使用Web服务的iphone应用程序通信,iphone,objective-c,cocoa-touch,Iphone,Objective C,Cocoa Touch,我想从一个iphone应用程序向另一个iphone应用程序发送一些文本和图像,但限制是我不应该在通信之间使用web服务器,有什么方法可以实现吗? 详细信息:有两个独立的设备,可以说离网络很远。我的要求一个应用程序会添加一些带有图像的文本,并将其发送到另一台iphone上,而另一台iphone上安装的应用程序会将这些信息和图像读取到自身中。提供具体答案的信息远远不够 两个不同设备上的两个应用程序? 这两个设备在同一网络上吗? 这两台设备都在WiFi上吗? 如果应用程序未运行,您是否需要用户接收通知

我想从一个iphone应用程序向另一个iphone应用程序发送一些文本和图像,但限制是我不应该在通信之间使用web服务器,有什么方法可以实现吗?
详细信息:有两个独立的设备,可以说离网络很远。我的要求一个应用程序会添加一些带有图像的文本,并将其发送到另一台iphone上,而另一台iphone上安装的应用程序会将这些信息和图像读取到自身中。

提供具体答案的信息远远不够

两个不同设备上的两个应用程序? 这两个设备在同一网络上吗? 这两台设备都在WiFi上吗? 如果应用程序未运行,您是否需要用户接收通知或其他信息? 如果在同一设备上,您可以在目标应用程序中定义自定义URL处理程序,然后在源应用程序中定义openURL:以传递数据。将图像和文本编码到URL中,但要注意大小限制

如果在不同的设备上,有许多可能的解决方案,但是回答上述问题对于真正了解什么是合适的解决方案至关重要

考虑到你的评论——两个应用程序、不同的设备、任意的网络——那么你必须在它们之间设置某种服务器。请注意,最近添加的Game Center确实能够会合两个用户,但它有一个非常特殊的用户体验,可能不适合您的需要


我建议您研究使用推送通知通知接收用户内容的可用性。至于在两者之间移动内容,不可能有直接的连接,您必须在两者之间有某种存储转发服务器。是的,web服务器将是最简单的解决方案,因为HTTP现在无处不在。

如果没有任何类型的网络可用,但双方都有业余无线电许可证,那么将两台设备连接到高频分组无线电可能会行得通。

这非常简单

我会编写一些可以将数据转换成调制解调器信号的软件,比如老式的拨号调制解调器。该设备实际上会发出那些烦人的嗡嗡声。 你得到你朋友最近的固定电话号码,然后给他打电话。 他把他的iPhone放在电话听筒旁边的监听模式下,你用音频调制解调器连接到他的手机上。 答对了,通过声音的力量,你已经发送了数据,这些数据在他的设备上被解码,而且所有这些都是为了一个电话的非常便宜的价格,现在有非常便宜的价格,特别是如果你使用Skype的话。
事实上,有一个解决方案可以满足您的需求,并且适合您的回答:

使用cocoahttpserver在iPhone上创建HTTP服务器。然后你会问一些像whatismyip.com这样的网络服务来获取你的公共ip。有了它,你的iPhone可以连接到世界各地。 但很可能你的wifi网络没有将你的端口转发到iPhone。灰 即使这样,现在也变得困难了。如何将您的ip从一部手机发布到另一部手机?嗯…-我明白了:我将在一个集中的空间交换信息!在网上! ... 等等-那将是一个Web服务器

您可以看到:如果Web中没有任何类型的服务器,用户将需要手动交换ip,并拥有完全的管理权限和有关本地网络的知识。 所以我认为答案是唯一的出路


PS:我正在使用运行在iPhone上的http服务器。在本地网络中,这非常有效,尤其是在使用bonjour时。您可以通过远程网络使用它们,但只能通过重新配置路由器来使用,这是您不应该强制用户执行的操作

这两个应用程序是在两个不同的设备上还是在同一设备上的应用程序之间交换数据?接收设备是否具有公共IP地址?接收应用程序正在运行并等待数据吗?@Ole Begemann:这两个应用程序在两个不同的设备上@hotpaw2:接收设备没有公共IP,它只是一个普通的iphone。接收器应用程序应该在收到某种通知时运行。它有两个独立的设备,可以说离网络很远。我的要求一个应用程序会添加一些带有图像的文本,并将其发送到另一台iphone,而另一台iphone上安装的应用程序会将这些信息和图像读取到自身中。伦敦梦,我认为你真的没有选择的余地。如果您的设备超出蓝牙范围,您将不可避免地使用HTTP。最简单的方法可能是一个简单的Restlike web服务!这个应用程序叫做Chirp