p2p文件传输小工具

news2024/11/23 0:58:27

使用webRTC的相关技术栈可以很轻松的开发一个p2p文件传输工具,这里主要讲下使用datachannel开发的一个文件传输工具client程序的使用

客户端A:需要可以访问公网,运行client的主机

客户端B:可以访问公网,可以和客户端A在同一个局域网内,也可以在不同的网络环境,不同的NAT环境,更能演示P2P穿透,运行client主机

首先发送文件的客户端A运行

client会连接websocket后台的信号服务器,提示输入remote ID,说明已经正常。

客户端A,也就是发送端,需要指定文件,启动之后,等待输入对端的ID信息

接收端B启动

运行远端,也就是文件接收方,这里也是一样的,但是这里要留意下local ID,wT4I

注意接收端这里不带-f的参数,这里是接受发送端发送的文件。

输入ID

输入ID后,正常state 会从connecting,到最后的connected,然后会建立datachannel,最后就可以发送文件数据了。

开始接受数据

我这里稍微修改了下代码,会看到发送文件的大小,以及当成传送的字节数。也可以把文件的md5值给传送过来,用于校验。

传送结束

传输结束,关闭datachannel。

一致性检查

用md5sum校验下内容是否一致。发现是完全一致的。可以找个实网的环境来测试下,这个是会实现NAT穿透的

备注:用电信手机拨号分享的网络好像穿透失败,无法正常打洞。都是宽带测试了几个都是可以的。速度能到3MB/s ~ 4MB/s. 非常不错。

下载链接

https://download.csdn.net/download/lvronglee/89380980

整个代码主要是编译对example的代码进行少许的修改,以及python的信号服务代码,可以非常方便的部署到阿里云上测试。

需要源码/或者编译方法的关注,私信留言

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1794462.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

关于三极管的理解

三极管工作时出现三个状态:截止、放大、饱和 1. 截止状态:三极管处于关断状态,Vce约等于电源电压 2. 放大状态:三极管处于电流放大状态,0V 3. 饱和状态:三极管处于完全导通状态,Vce≈0V 放大电…

卡尔曼滤波(Kalman Filtering)详细解读

🧑‍🎓 个人主页:《爱蹦跶的大A阿》 🔥当前正在更新专栏:《VUE》 、《JavaScript保姆级教程》、《krpano》、《krpano中文文档》 ​ ​ ✨ 前言 卡尔曼滤波(Kalman Filtering)是一种用于估计…

天润酸奶爆改饭盒?为什么听劝营销“硬控”消费者如此有效

不知道大家会不会经常逛超市?有没有发现酸奶货架上有一道异于其它品牌的包装,它就是新疆天润酸奶,酷似饭盒的外包装对于当代倡导实用主义的年轻人来讲,这一发现无疑是直接“创进心巴”,不少网友表示它直接解决了带饭人…

新零售智能售卖教学实训沙盘内容介绍

新零售智能售卖教学实训沙盘是服务数据分析的教学工具。通过该沙盘,能够让学生了解数据分析在新零售行业智能售卖业务场景的应用流程。使用新零售智能售卖教学实训沙盘进行教学,一方面能够让老师的教学内容更加贴近实际应用,将教学场景具象化…

音视频开发13 FFmpeg 音频 相关格式分析 -- AAC ADTS格式分析

这一节,我们学习常用的音频的格式 AAC,重点是掌握 AAC的传输格式 ADTS 头部的信息,目的是 : 当音频数据有问题的时候,如果是AAC的编码,在分析 头部信息的时候能够根据头部信息 判断问题是否出现在 头部。 A…

搜狗输入法的软键盘怎么关闭

我的搜狗输入法软件盘和typora中ctrlshiftk冲突了,关闭软键盘

doris FE 在Windows环境下编译调试开发环境

前言: doris fe 在win下调试运行,和正常java项目有一些差异,主要是有与be(c)通信代码的生成 在win环境下不能直接生成,因此需要现在linux下生成之后,再拷贝到本地来,然后进行编译&a…

锻炼 精读笔记 01

元数据 [!abstract] 锻炼 书名: 锻炼作者: 丹尼尔利伯曼简介: 我们是为休息而生,还是为跑而生? 跑步会毁了你的膝盖吗? 哪种运动项目蕞适合我? 懒惰是不正常的行为吗? 每晚都需要睡够 8 个小时…

机器学习是什么?它又如何在网络安全中使用?

介绍 本文概述了基础机器学习概念,并解释了机器学习在网络安全行业中日益增长的应用,以及主要优势、主要用例、常见误解和 CrowdStrike 的机器学习方法。 什么是机器学习? 机器学习 (ML) 是人工智能 (AI…

RockPI 4A单板Linux 4.4内核下的RK3399 GPIO功能解析

RockPI 4A单板Linux 4.4内核下的RK3399 GPIO功能解析 摘要:本文将基于RockPI 4A单板,介绍Linux 4.4内核下RK3399 GPIO(通用输入输出)功能的使用方法。通过详细的代码解析和示例,帮助读者理解如何在Linux内核中使用GPI…

MySQL条件查询

018条件查询之或者or or表示或者,还有另一种写法:|| 案例:找出工作岗位是MANAGER和SALESMAN的员工姓名、工作岗位 注意字符串一定要带单引号 select ename, job from emp where jobmanager or jobsalesman;任务:查询20和30部门的…

信息系统项目管理师0145:敏捷与适应方法(9项目范围管理—9.2项目范围管理过程—9.2.3敏捷与适应方法)

点击查看专栏目录 文章目录 9.2.3 敏捷与适应方法9.2.3 敏捷与适应方法 对于需求不断变化、风险大或不确定性高的项目,在项目开始时通常无法明确项目的范围,而需要在项目期间逐渐明确。敏捷或适应型方法特意在项目早期缩短定义和协商范围的时间,为后续细化范围、明确范围争取…

海思Hi3519DV500方案1200万无人机吊舱套板

海思Hi3519DV500方案1200万无人机吊舱套板 Hi3519DV500 是一颗面向行业市场推出的超高清智能网络摄像头SoC。该芯片最高 支持四路sensor 输入,支持最高4K30fps 的ISP 图像处理能力,支持2F WDR、 多级降噪、六轴防抖、全景拼接、多光谱融合等多种传统图像…

一种用于异质结高电子迁移率晶体管(HEMTs)的紧凑型漏电流模型,其中包括双子带的二维电子气(2DEG)密度解

来源:A compact drain current model for heterostructure HEMTs including 2DEG density solution with two subbands(Solid-State Electronics 16年) 摘要 本文提出了一种针对异质结高电子迁移率晶体管(HEMTs)的二维电子气(2DEG)电荷密度…

数组array 和 array的区别

问题 对于数组 array和&array有什么区别呢? 先说答案 array: 指向数组第一个数地址的指针 &array: 指向整个数组地址的指针 所以直接打印的话, 地址是一样的. 但是如果1的话, 那么array是增加sizeof(int)大小, &array是增加sizeof(int) * array.size() 测试 #i…

[AVL数四种旋转详细图解]

文章目录 一.右单旋二. 左单旋三. 右左双旋四. 左右双旋 一.右单旋 新节点插入较高左子树的左侧—左左:右单旋 由于在较高左子树的左侧插入一个节点后,左边插入导致30的平衡因子更新为-1,而60平衡因子更新为-2,此时不平衡&…

Elastic Search 8.14:更快且更具成本效益的向量搜索,使用 retrievers 和重新排序提升相关性,RAG 和开发工具

作者:来自 Elastic Yaru Lin, Ranjana Devaji 我们致力于突破搜索开发的界限,并专注于为搜索构建者提供强大的工具。通过我们的最新更新,Elastic 对于处理以向量表示的大量数据的客户来说变得更加强大。这些增强功能保证了更快的速度、降低的…

【精选案例】Sellfy | 电子商务平台怎么利用客户裂变系统实现用户增长?

Sellfy是一种基于云的电子商务解决方案,特别为数字内容创作者所设计。 一、主要目标用户: Sellfy主要针对的是包括作家、插画家、设计师、音乐家和电影制作人在内的数字内容创作者,他们可以在Sellfy上在线销售自己的产品。 二、平台特点&a…

KIBANA的安装教程(超详细)

前言 Kibana 是一个开源的基于浏览器的可视化工具,主要用于分析和展示存储在 Elasticsearch 索引中的数据。它允许用户通过各种图表、地图和其他可视化形式来探索和理解大量数据。Kibana 与 Elasticsearch 和 Logstash 紧密集成,共同构成了所谓的 ELK 堆…

全面守护你的健康ZL-0891A小动物多参数监护仪

简单介绍: 12.1英寸彩色TFT显示,分辨率800X600,采用数字血氧DSP算法,低灌注,小动物多参数监护仪具有优良的抗运动性能;动物用血压算法,支持测量各种动物类型,特有的中英文语音报警;支持USB数据导出,可以在…