当前位置: 首页 > news >正文

如何解决stun服务无法打洞建立p2p连接的问题

大家好,今天给大家介绍一点网络通信相关的内容,主要涉及到网络路由相关知识,希望对您有所帮助!

问题描述:stun服务无法在对称型nat间实现点对点跨网络通信。
解决办法:自行搭建tun服务,退而求其次,实现流的转发,大体如下:
在这里插入图片描述
在这里插入图片描述
服务搭建在这里插入图片描述

部分代码:

const c = e.candidate;let type = 'unknown';if (c.candidate.includes('typ relay')) type = 'relay';else if (c.candidate.includes('typ srflx')) type = 'srflx';else if (c.candidate.includes('typ host')) type = 'host';const parts = c.candidate.split(' ');const protocol = parts[2].toLowerCase();const ip = parts[4];const port = parts[5];iceLog(`${type.padEnd(7)}  ${ip}:${port}  ${protocol}`, type);// 缓存所有ICE候选iceCandidateQueue.push(c);debugLog(`ICE候选已缓存 (总数: ${iceCandidateQueue.length})`);
 ............socket.onmessage = async (ev) => {try {const data = JSON.parse(ev.data);debugLog(`收到消息: ${data.type} 来自: ${data.senderId || '未知'}`);switch (data.type) {case 'request-connection':if (myRole === 'controlled' && pendingOffer) {if (data.senderId) {debugLog('控制端请求连接,发送 offer 到: ' + data.senderId);lastSenderId = data.senderId;// 发送offersocket.send(JSON.stringify({type: 'offer', offer: pendingOffer, targetId: data.senderId, senderId: myId}));

更多内容,您可以去 B站大衣哥编程 进一步查看,如果您对编程感兴趣,特别是C/C++、C#、Java、Go、分布式、流媒体、计算机网络、协议分析、数据库等,可戳此连接

http://www.dtcms.com/a/394066.html

相关文章:

  • 解决项目实践中 java.lang.NoSuchMethodError:的问题
  • JavaSE-多线程(5.2)- ReentrantLock (源码解析,公平模式)
  • 2025华为杯A题B题C题D题E题F题选题建议思路数学建模研研究生数学建模思路代码文章成品
  • 【记录】Docker|Docker中git克隆私有库的安全方法
  • Web之防XSS(跨站脚本攻击)
  • 使用 AI 对 QT应用程序进行翻译
  • Windows下游戏闪退?软件崩溃?游戏环境缺失?软件运行缺少依赖?这个免费工具一键帮您自动修复(DLL文件/DirectX/运行库等问题一键搞定)
  • 【从入门到精通Spring Cloud】统一服务入口Spring Cloud Gateway
  • setfacl 命令
  • Photoshop - Photoshop 分享作品和设计
  • 【Agent 设计模式与工程化】如何做出好一个可持续发展的agent需要考虑的架构
  • 【Camera开发】疑难杂症记录
  • 如何提高自己的Java并发编程能力?
  • Polkadot - ELVES Protocol详解
  • springBoot图片本地存储
  • 蝉镜-AI数字人视频创作平台
  • Linux入门(五)
  • MySqL-day4_03(索引)
  • Vue 深度选择器(:deep)完全指北:从“能用”到“用好”
  • [Nodejs+LangChain+Ollama] 1.第一个案例
  • 设计模式2.【备忘录模式】
  • Spring Boot 入门:快速构建现代 Java 应用的利器
  • Redis 实例 CPU 飙高到 90%,如何排查和解决?
  • 中国女篮备战全运会,宫鲁鸣重点培养年轻核心
  • 【Qt】常用控件1——QWidget
  • 9.21关于大模型推理未来的思考
  • 如何解决 pip install 安装报错 ModuleNotFoundError: No module named ‘uvicorn’ 问题
  • 变分自编码器(VAE):生成模型的另一条技术路线
  • 【LVS入门宝典】LVS NAT模式实战指南:ip_forward、iptables与SNAT、DNAT规则配置详解
  • 【Android】BottomSheet的三种使用