python p2p

编程入门 行业动态 更新时间:2024-10-27 16:33:20

<a href=https://www.elefans.com/category/jswz/34/1770869.html style=python p2p"/>

python p2p

Google

MAR

6TH, 2014

Python实现STUN+TURN+P2P聊天

作为技术验证,最近实现了一下NAT穿透,并在此基础上完成了P2P聊天的客户端(虽然只能在命令行中打字)。理论上能不论电脑处于何种类型NAT设备后,均可以实现P2P聊天。代码和使用方法参见

这篇文章主要(简单)介绍一下必要的背景知识和原理,github上已有的内容就不再说明。

什么是NAT穿透?

什么是STUN, TURN?

如何实现NAT穿透?

喂这就算介绍完了吗(╯‵□′)╯︵┻━┻

咳咳,总之原理部分就这样吧

PyPunchP2P工作流程

PART ONE: 连接

假定你已经运行了server.py,并让其监听1234这个端口。客户端A首先会通过从pystun里面弄出来的那部分代码检测自己的NAT类型

nat_type, _, _ = self.get_nat_type()

然后通知服务器端,发起连接请求,同时告知服务器自己的NAT类型。client.py的第三个参数是pool值,这个值是用来匹配客户端用的。如果说两个发起连接的客户端有一样的pool值,那么就认为它们是希望通信的客户端。指定的pool值也会发送给服务器。

self.request_for_connection(nat_type_id=NATTYPE.index(nat_type))

其中

NATTYPE = (FullCone, RestrictNAT, RestrictPortNAT, SymmetricNA

更多推荐

python p2p

本文发布于:2024-02-27 12:12:09,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1706467.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:python   p2p

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!