我正在寻找一种解决方案来使用(UDP
或TCP
)在** NAT ** 分离的android 终端或节点之间交换信息,让我们假设A
并且B
是两个android 客户端。
我正在开发一个客户端直接相互通信的“远程 VoIP 应用程序”。
对于 STUN Server 和 NAT Traversal 的实现,我使用了一个开源STUN server
软件STUNTMAN。
在客户端,为了从中获取Public IP: PORT
,STUNTMAN
我集成了一个开源的 stun-client 作为“ JSTUN ”,它是一个基于 Java 的 STUN 客户端。
在 Client-A,** STUNTMAN Server ** 的示例结果如下:
stunclient --mode full --localport 9999 stun.stunprotocol.org
Binding test: success
Local address: 192.168.1.8:9999
Mapped address: 1.2.3.4:9999
Behavior test: success
Nat behavior: Endpoint Independent Mapping
Filtering test: success
Nat filtering: Address and Port Dependent Filtering
为了在 Android 客户端之间进行点对点通信,我维护了一个在客户端 A 和 B 之间signaling server
准确共享映射地址的方法。
但是,当我尝试使用UDP 或 TCP 套接字启动对等通信时,它们之间没有这样的通信。
我还在 StackOverflow 上尝试了这个解决方案,作为混淆-关于-stun-server和android-iOS-peer-to-peer-arhitechture。我无法理解我在哪里做错了?
是否有可能维持 VoIP 的 P2P 通信?
是否有任何具有 P2P 功能的 VoIP 应用程序?(最初,Skype是基于对等架构的)
我需要的是一个程序示例,而不是基于理论的答案。