开源一个局域网文件共享工具

shigen日更文章的博客写手,擅长Java、python、vue、shell等编程语言和各种应用程序、脚本的开发。记录成长,分享认知,留住感动。

hello,夜深了,又是shigen深夜写博客的时间啦,今天分享的内容是《开源一个局域网文件共享工具》。

不知道大家有没有这样的需求,我有多个设备,或者我想给别的同事传递文件,但是不想在互联网上传播(情况很少哈),一般要求我们有相同的软件才行。但是我又不想安装软件,因为安装软件又会占用额外的空间,该怎么办呢?

其实shigen在小的时候很喜欢这个东西:

蓝牙

对,你没有看错,就是叫做bluetooth的东西,那个时候只要蓝牙一打开配对成功,完全可以传输文件和视频了,只不过速度慢得可怜。

其实多年来发现我一直是个很喜欢倒腾的人,在自己学的技术越来越多的时候,我也开始研究文件的传输的。这不,我研究了一下文件的局域网传输。

意思就是大家同处于一个网络环境下,如:一个公司一个家庭,这样的话,我们就具备了一个内网地址,比方说shigen此时的内网地址是:192.168.0.103

我的内网

那隔壁的室友是可以通过局域网和我本机暴露在外的服务进行通信的。是不是很神奇?并且网速是直接拉满,而且不会收取一分钱,不信你去把网线拔了试试,丝毫不受影响。

玩过云服务器的其实也都知道,内网的流量是不收费的。

那现在正题来了,shigen基于这个技术搞了什么呢?一起拭目以待。

我们运行一下服务:

file-server

接下来你会发现控制台的输出:

控制台的输出

这里的二维码经过特殊的处理,否则部分平台可能审核不通过。

发现这里出现了一个二维码,并且下方显示了我的服务的内网地址和外网地址。让你的好奇心驱使你拿起手机扫描屏幕的二维码,神奇的事情再次发生:

前端页面

此时页面跳转到了浏览器,出现了一个文件上传的方框(支持拖拽、点击选择文件上传),下方依旧有一个二维码。我们点击上传文件试试:

文件上传

此时,文件很快就上传了,并且我们看看控制台输出:

输出的进度条

展示出了完美的进度条。

那就这么简单吗,其实并不是,shigen还做了一个类似于后端管理的功能,我们在浏览器输入http://192.168.0.103:9000/list,我们会看到项目的文件目录:

项目文件目录

详细的文件列表

我们随便点击一个下载,即可下载文件:

下载文件

此时文件就可放在我们的本地了。

那么觉得这个工具好用的话,可以去shigen的github看看。上边有整个的代码案例供大家参考。当然,代码中也有很多的设计优化点:

  1. 进度条的显示问题
  2. 在终端和前端的二维码显示和布局问题
  3. 文件夹切换问题

shigen后期也会不断的优化,丰富这个功能。


以上就是今天分享的全部内容了,觉得不错的话,记得点赞 在看 关注支持一下哈,您的鼓励和支持将是shigen坚持日更的动力。同时,shigen在多个平台都有文章的同步,也可以同步的浏览和订阅:

平台账号链接
CSDNshigen01shigen的CSDN主页
知乎gen-2019shigen的知乎主页
掘金shigen01shigen的掘金主页
腾讯云开发者社区shigenshigen的腾讯云开发者社区主页
微信公众平台shigen公众号名:shigen

shigen一起,每天不一样!

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Deepmind开发音频模型Lyria 用于生成高品质音乐;创建亚马逊新产品评论摘要

🦉 AI新闻 🚀 Deepmind开发音频模型Lyria 用于生成高品质音乐 摘要:Deepmind推出名为Lyria的音频模型,可生成带有乐器和人声的高品质音乐。Lyria模型针对音乐生成的挑战,解决了音乐信息密度高、音乐序列中的连续性维…

《算法通关村——幂运算问题解析》

《算法通关村——幂运算问题解析》 2 的幂 给你一个整数 n,请你判断该整数是否是 2 的幂次方。如果是,返回 true ;否则,返回 false 。 如果存在一个整数 x 使得 n 2x ,则认为 n 是 2 的幂次方。 示例 1&#xff1…

Hutool

一、简介 Hutool是一个小而全的Java工具类库,通过静态方法封装,降低相关API的学习成本,提高工作效率,使Java拥有函数式语言般的优雅 官方文档: https://www.hutool.cn/docs/#/ 二、包含组件 一个Java基础工具类,对文…

梁培强:塑造下一代投资高手

在当前全球经济动荡和金融市场快速变化的背景下,梁培强的投资教育计划不仅仅是一套课程,它是对传统投资理念的深度挑战和革新。梁培强,拥有超过二十年金融行业经验的资深分析师,正在引领一场投资者教育的变革,旨在培养…

Java核心知识点整理大全9-笔记

目录 null文章浏览阅读9w次,点赞7次,收藏7次。Java核心知识点整理大全https://blog.csdn.net/lzy302810/article/details/132202699?spm1001.2014.3001.5501 Java核心知识点整理大全2-笔记_希斯奎的博客-CSDN博客 Java核心知识点整理大全3-笔记_希斯…

3.volatile基本原理及缺陷

目录 概述案例代码如下执行结果 原理实现内存可见性的过程硬件上的内存屏障底层分析java中的四种内存屏障 缺陷代码执行结果 结束 概述 想要多线程程序正确的执行,必须要保证原子性、可见性及有序性。只要有一个没有被保证,就有可能导致程序运行不正确。…

图像分类原理

一、什么是图像分类(Image Classification) 图像分类任务是计算机视觉中的核心任务,其目标是根据图像信息中所反映的不同特征,把不同类别的图像区分开来。 二、图像分类任务的特点 对于人来说,完成上述的图像分类任务简直轻而易举&#xf…

TypeScript快速入门

基础类型 类型定义例子布尔值Boolean赋值为true或者falselet isDone:boolean false数字number支持十进制、八进制、十六进制let decLiteral: number 2023; let binaryLiteral: number 0b11111100111;let octalLiteral: number 0o3747;let hexLiteral: number 0x7e7;字符串…

办公技巧:Word中插入图片、形状、文本框排版技巧

目录 一、插入图片排版技巧 二、添加形状排版技巧 三、插入“文本框”排版技巧 我们平常在制作word时候经常会遇到插入选项卡下的图片、形状和文本框这三种情况下,那么如何使得Word文档当中添加这三个元素的同时,又能保证样式美观呢,今天小…

NX二次开发UF_CAM_set_clear_plane_data 函数介绍

文章作者:里海 来源网站:https://blog.csdn.net/WangPaiFeiXingYuan UF_CAM_set_clear_plane_data Defined in: uf_cam_planes.h int UF_CAM_set_clear_plane_data(tag_t object_tag, double origin [ 3 ] , double normal [ 3 ] ) overview 概述 De…

【LeetCode】每日一题 2023_11_23 HTML 实体解析器(调库/打工)

文章目录 刷题前唠嗑题目:HTML 实体解析器题目描述代码与解题思路 结语 刷题前唠嗑 题目:HTML 实体解析器 题目链接:1410. HTML 实体解析器 题目描述 代码与解题思路 func entityParser(s string) (ans string) {return strings.NewRepla…

TransFusionNet:JetsonTX2下肝肿瘤和血管分割的语义和空间特征融合框架

TransFusionNet: Semantic and Spatial Features Fusion Framework for Liver Tumor and Vessel Segmentation Under JetsonTX2 TransFusionNet:JetsonTX2下肝肿瘤和血管分割的语义和空间特征融合框架背景贡献实验方法Transformer-Based Semantic Feature Extractio…