6

几个星期以来,我一直在尝试创建一个套接字聊天/文件传输应用程序。我花了几个小时在互联网上搜索一段关于 UDP 打孔的代码,但我还没有找到任何可行的或足够简单的东西供我使用。

我试图让路由器(NAT)后面的两个客户端相互连接。我设法设置了一个共享两个客户端 IP 和端口的服务器,但我还没有设法真正启动连接。我可以在任何地方使用任何源代码吗?

我找到了几个像 JStun 这样的 STUN/ICE/TURN 库,但是没有关于如何使用它们的文档。我需要 STUN 服务器来启动连接吗?我可以使用像 numb.viagenie.ca 或http://www.stunserver.org/这样的公共的吗?

任何答案将不胜感激。谢谢!

编辑:我有更多的探索,我发现即使通过 PHP 也很容易制作 STUN。我已经建立了自己的 PHP stun,它只共享两个客户端数据。困难的部分是连接两个客户端,但这使用了一种叫做 ICE 的东西。感谢在评论中发布内容的 selbie 。这让我在 ICE 上走上了正轨。如果有人提出其他问题,我会将这个问题留待更长时间。我将开始编写我自己的 ICE 代码,或者尝试在网上寻找一些东西。谢谢!

4

1 回答 1

2

可以在此处找到纯 Java 中的 UDP 打孔示例: https ://github.com/lklacar/java-hole-punching

不再维护,但这里是 STUN 过程等的框架: https ://github.com/htwg/UCE

我试图让 UDP Hole Punching 与 Java 客户端和 PHP 服务器一起工作,但还不能让它工作。如果您有,您可以与我们分享并回答以下问题: Java-Client PHP-Server UDP Hole Punching example code

于 2017-08-29T15:10:25.940 回答