首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何用python实现stun

如何用python实现stun
EN

Stack Overflow用户
提问于 2017-02-25 15:52:21
回答 2查看 3.2K关注 0票数 0

我有一个raspberry pi,它被设置为音频流服务器。我使用websockets和python作为编程语言。客户端可以通过连接到raspberry pi上托管的服务器来收听实况音频流。该系统在本地主机环境下运行良好。现在,我想从互联网上访问服务器,通过搜索我了解了STUN。我尝试使用pystun,但我无法获得用于NAT穿孔的正确端口。所以有人能帮我实现STUN吗?注意:服务器正在监听localhost:8000

EN

回答 2

Stack Overflow用户

发布于 2017-02-26 02:11:45

仅用谷歌搜索STUN Python就会得到这样的结果:

https://pypi.python.org/pypi/pystun

转到该页面的底部,您将找到源代码的链接。解压后,核心STUN代码就在__init__.py文件中。

回到你的音频服务器。如果它是真正的客户端/服务器协议,并且只使用一个端口进行所有通信,那么就不需要STUN本身。您只需要在您的NAT上打开一个端口,这样来自外部世界的任何客户端都可以连接。如果协议比较复杂(端口是以点对点的方式动态协商的),那么您需要在直接连接到Internet的信令协议服务之上使用STUN之类的东西。

票数 1
EN

Stack Overflow用户

发布于 2020-10-03 03:42:50

NAT穿孔用于点对点(P2P)通信,而您的音频流服务器似乎是一个客户端-服务器实现。

这在很大程度上取决于您的NAT设备(实现了哪种类型的NAT )。你的NAT设备超时时间短的可能性很高,你需要为每个客户端连接打孔(从你的树莓派)。

正如你所说的,你正在使用WebSockets,而这些总是TCP,pystun是不会工作的,因为pystun只支持UDP。

我建议在你的NAT设备中创建一个端口转发,使用P2P虚拟专用网络隧道你的流量,或者在不同的网络上托管你的音频流服务器。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42453445

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档