4

我正在寻找一种解决方案来使用(UDPTCP)在** NAT ** 分离的android 终端或节点之间交换信息,让我们假设A并且B是两个android 客户端。


我正在开发一个客户端直接相互通信的“远程 VoIP 应用程序”


对于 STUN Server 和 NAT Traversal 的实现,我使用了一个开源STUN server软件STUNTMAN

在客户端,为了从中获取Public IP: PORTSTUNTMAN我集成了一个开源的 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-serverandroid-iOS-peer-to-peer-arhitechture。我无法理解我在哪里做错了?

  • 是否有可能维持 VoIP 的 P2P 通信?

  • 是否有任何具有 P2P 功能的 VoIP 应用程序?(最初,Skype是基于对等架构的)


我需要的是一个程序示例,而不是基于理论的答案。

4

0 回答 0