Articles of p2p

我们可以直接从Android设备发送数据到另一台android设备(p2p)吗?

我需要发送数据从一个Android设备到另一个Android设备直接(P2P)后,他们通过服务器find对方。 我读了一些东西,这是不能做的,但我不明白为什么可以访问互联网(它有一个IP权利?)的设备不能创build一个对等连接? 如果这不可能,为什么? 如果是这样的话? PS:我知道没有互联网我们不能达到这个目的,这个问题假设两个目标都有互联网连接,无论是gprs / 3g / 4g还是wifi互联网连接! 注意:我希望这是可能的无线和非WiFi互联网!

Android,NSD / DNS-SD:NsdManager不可靠的发现和IPparsing

在过去的几周里,Android的NSD实现让我发疯: 从用户的angular度来看,会出现以下问题: 设备以完全不确定的方式相互发现。 如果我启动基于NsdManager的应用程序,则只要涉及到两个设备,就可以或多或less地工作。 如果第三个设备join,它很less会发现前两个 ,而前两个设备不会看到第三个。 如果我退出应用程序(它们正常地取消注册NSD侦听器)并以不同的顺序重新启动它们,则发现模式不完全相同,但是类似。 在我的家庭networking中,被发现设备的IP分辨率基本上按预期工作。 在工作中,有时甚至只使用两个设备(A和B), 设备A将用A的IP地址和B的端口parsing设备B的服务,反之亦然。 所以不知何故,IP地址和服务名称似乎混在一个较低的级别(可能是NsdManager)。 我现在已经提交了有关Google代码的错误报告( https://code.google.com/p/android/issues/detail?id=201314&thanks=201314&ts=1455814995 )。 我也在这里张贴这个,希望得到更多的反馈; 也许我在我的Nsd helper类中有错误的东西。 首先,经过无尽的debugging,现在我已经在logcat中发现了一些提示,说明Android的底层NsdService本身可能出现故障,而MDnsDS似乎正常工作。 但是我不确定… 下面是一些说明问题的日志输出(为了可读性过滤了一些消息): 02-18 16:57:02.327: D/NsdService(628): startMDnsDaemon 02-18 16:57:02.327: D/MDnsDS(187): Starting MDNSD 02-18 16:57:02.529: D/NsdService(628): New client listening to asynchronous messages 02-18 16:57:02.529: D/NsdService(628): New client, channel: com.android.internal.util.AsyncChannel@1fa188ce messenger: android.os.Messenger@cca33ef 02-18 16:57:02.532: D/NsdService(628): Register service 02-18 16:57:02.532: D/NsdService(628): […]

从iOS到Android的点对点video?

我开始为iOS和Android开发/构build对等video聊天应用程序。 我正在尝试为FaceTime或Tango创build一个类似的体验 – 即高质量的video,可以在互联网/ 3G上运行(不只是在同一个局域网上)。 我刚开始研究阶段。 我做了一堆谷歌search,但没有find太多(因为这是一个新的领域,我可能在错误的地方看)。 你能提出我应该预料会遇到的任何陷坑吗? 我应该使用什么协议(从阅读我看,人们使用SIP或XMPP,这是最好的select?)。 我是否会遇到这样的跨平台沟通问题? 我应该探索的任何其他资源。 我的大部分经验是在开发Web应用程序和后端服务器端的东西。 所以这对我来说是一个新的尝试,但是我期待着心灵的舒展。 谢谢!

直接连接2个或更多Android客户端

我想连接2个或更多的Android设备与P2P连接。 据我所知,我可以使用Wi-Fi直连在一个WiFinetworking下https://developer.android.com/guide/topics/connectivity/wifip2p.html 但我想连接位于不同地方,但可能与一个IP(VPN或什么)的Android客户端。 我怎样才能做到这一点? 这是我的algorithm Client_1 register its name and current IP on Server Client_2 register its name and current IP on Server Client_1 request registred IP from Server by Client_2 name Client_2 request registred IP from Server by Client_1 name Client_1 send message directly to Client_2 IP 如果Client_1和Client_2具有相同的IP,则此algorithm将不起作用。 或者如果客户端在NAT后面。 有没有一个现成的库,以这种方式连接2个或更多的Android设备?

客户/同行在Android平台上与wifi-direct进行通信

我有三个Android设备:A,B和C.它们通过wifi-direct连接(假设B是组主人)。 我只有两个问题:1.要发一条消息给C,该消息是否必须通过组主B到达C? 2.如果组长B意外断线,A会不会仍然可以发送信息给C? 谢谢!

Android:NAT穿越?

在我看来,更新的Android设备在NAT后面运行,其中本地地址是内部运营商或LAN地址,公共地址是路由器或运营商分配的外部地址。 不过,使用NetworkInterface的新电话不会像访问IP检测服务时那样返回相同的地址。 因此,通过直接的P2P SocketChannels连接本质上是失败的。 针对Android平台devise的这个问题是否有任何常见的解决方法? 任何人都可以澄清是什么导致这种类似NAT的安全问题? 任何链接到Java NAT穿越教程或示例 (不论文章或论文)也将被赞赏是有帮助的(因为我不太确定如何在Java中实现它)。 我当然也会接受任何其他解决scheme!

适用于iOS和Android的Unity3D:多人游戏(蓝牙连接)

我正在寻找一种方法来在Unity iOS和Android Basic中使用蓝牙连接两台设备来进行多人游戏。 我发现: Qualcomm的AllJoyn – 蓝牙工程显然只能使用Root- Anroid设备,目前还不支持iOS。 适用于iOS的iOS GameKit本地多人游戏 – 仅适用于iOS。 格雷佐的Bonjour插件 – 不是蓝牙,而是其他只适用于iOS的本地多人游戏解决scheme。 TNet :不是蓝牙,只适用于Android和iOS Pro 有任何其他解决scheme(特别是Android)? 我会很感激任何帮助。 也适用于其他p2p-Unity-Solutions。

通过互联网(在NAT后面)的Android P2P(直接连接)

我开始一个小型项目,基本上是一个多人(如在两个以上的球员)变化的经典战舰游戏。 我在尝试解决编码之前要解决的一个问题是多个玩家之间的沟通问题。 目前的可能性是使用中央HTTP服务器作为通信的中心枢纽(加上Android C2DM API以允许从HTTP服务器到设备的推送通信)。 这似乎是一个很好的解决scheme,因为从理论上讲,只要你能访问互联网,无论你是否支持NAT,它都应该能够正常工作。 然而,所提出的解决scheme具有存在单点故障/额外负载(networking服务器)的缺点。 所以我想尝试其他select。 我想在客户端之间使用Sockets进行直接连接(Web服务器只是作为初始会议点),但是如果所有设备都在同一个networking中,那么这种方法只能工作得很好。 考虑到今天我们几乎总是在路由器的NAT后面,我怎么才能实现直接通信? 我一直在读洞打孔,但我找不到任何有据可查的好的库(包含很好的使用示例),并且可以在Android上运行。 另外,大多数(如果不是全部的话)冲孔技术(STUN,ICE等)只能用于UDP,这对于audio/video和实时多人游戏来说是好的,可以丢失一些消息,但是对于多人玩家基于游戏的保证交付每个回合的数据是非常重要的(这是UDP不可能的)。 那么,任何想法如何实现在Android设备之间NAT后面可靠的打孔(最好是通过TCP)? 它不必在100%的情况下工作(一些陌生的NAT可能不被支持),但如果它在大多数情况下工作,那将是很好的。

点对点通信选项

任何人都可以确认Android框架内目前允许的点对点通信方法是什么? 我需要传输jsonstring,而且我目前使用的SMS工作正常,但问题是数据也以许多文本消息结束。 我读过Reto Meier的专业Android应用程序开发第一版,他说,由于安全问题,数据传输选项没有实现。 这一切都改变了,你将如何做点对点的数据传输?

Android / iOS对等体系结构

这是一个广泛的问题,我发现了很多关于这个话题的信息。 可能的技术 蓝牙 只有GameKit iOS? 蓝牙P2P库,带有Wi-Fi和GPS? 无线上网 Wifi直接? Bonjour zeroconf? 这些目前都没有一个完全实施的点对点的图书馆,或者我还没有find这样的。 事实上,我对任何types的游戏库都不感兴趣(而且我没有针对这些问题) 我曾考虑过的问题 在android中的点对点连接 Android自API 14以来,不支持跨平台使用 Android对等技术 ANI( https://github.com/pocmo/Android-Network-Intents )只拦截networking DIAL,MOVL只有wi-fi Android对等连接 C2DM / GCM需要移动数据 Android可以做点对点ad-hocnetworking吗? 只有直接的Wifi 从iOS到Android的点对点video? 需要networking数据和服务器 http://forum.unity3d.com/threads/141469-Wifi-Bluetooth-Multiplayer-on-iOS-and-Android GameKit is compatible only with other GameKit https://www.alljoyn.org/docs-and-downloads/documentation/alljoyn-android-environment-setup-guide-rev-d 蓝牙没有得到很好的支持,并且需要设备的生根。 我希望在尽可能多的设备之间高效地进行通信,而不需要使用移动数据(3G,HS * PA,LTE)或WIFI AP作为中间点。 而不是连接远距离的人,真的就像通过蓝牙的PAN。 因此,我需要什么function 完全离线(不需要任何移动数据服务或wifi AP) 跨平台兼容性(Android,iOS) 移动操作系统向后兼容性(从2.3开始的Android,从5.1.1开始的iOS) 我想要的function 路由优化(OSPF,MME,…) 不要求设备授权到networking(请参阅Android 不安全的BT RFCOMM ) […]