我已经尝试创建套接字聊天/文件传输应用程序数周了。我花了好几个小时在互联网上搜索关于UDP打孔工作的代码,但我还没有发现任何有效或足够简单的东西供我使用。
我试图让两个客户端在路由器(NAT)之后相互连接。我设法建立了一个共享两个客户端IP和端口的服务器,但我还没有设法实际建立连接。我可以在任何地方使用任何源代码吗?
我发现了几个像JStun这样的STUN / ICE / TURN库,但是没有关于如何使用它们的文档。我是否需要STUN服务器才能启动连接?我可以使用像numb.viagenie.ca或http://www.stunserver.org/这样的公共网站吗?
任何答案都将不胜感激。谢谢!
编辑:我有更多的讨论,我发现即使通过PHP,STUN也相当容易。我已经设置了自己的PHP stun,只是共享两个客户端数据。困难的部分是连接两个客户端,但这使用了一个名为ICE的东西。感谢selbie在评论中发布了this。这使我与ICE走在正确的轨道上。如果有人想出其他的话,我会把这个问题保持开放一段时间。我将开始编写自己的ICE代码,或尝试在线查找内容。谢谢!
答案 0 :(得分:1)
纯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