文档(代码比较乱)

ubuntu效果

windows效果

主程序, Lantans_desktop.py 运行时所需环境: python3.4, PyQT5

如果接收过程无法被扫描到, 请关闭防火墙

接收文件

使用:

打开软件->选择 接受 ->选择保存路径->点击 等待接收, 然后等待局域网中的发送方即可.

注意:

如果长时间没后得到传输文件的文件, 请确保文件的发送者在线

发送文件

使用:

打开软件->点Add file选择要发送的文件(可以是多个文件)->点击搜索主机->等待状态栏提示红色->点 开始 开始传输

注意事项:

最佳的传输方案接收方先打开客户端, 等待接收, 然后发送方再发送

如果是发送方先开始活动, 发送方会首先向局域网中广播10秒钟的信息, 如果10秒钟内任然没有发现接收方, 请确定接收方在局域网内, 或者网络连通性, 可以不断尝试多次搜索接受者

已知问题:

传输过程中速度时快时慢, 不知道为什么

文件名中不要有"`"符号, 否则保存文件的文件名会错乱, 严重会导致程序崩溃

开发者文档:

项目使用python3.4 + PyQt5开发, linux windows跨平台使用

概述:

如何确定接收者?

确定两端用户使用UDP连接, 当用户要发送文件时, (client)会向整个局域网中广播信息(发送的信息是本机的网络主机名), 持续广播10秒, 每隔2秒广播一次, 如果在广播的过程中发现了文件接收者, 那么接收者(server)在收到client发送的信息后, 将传输文件将使用的[端口号]发送给文件发送者(client), 接着接收方就打开TCP服务端等待发送方client发起TCP连接请求, 建立TCP连接后, 即可开始相互传输文件

如果传输文件?

在发送方(TCP client)与接收方(TCP server)建立了TCP连接之后:

发送方

将本次要发送的文件的描述信息发给接收方. 用于接收方通过信息生成GUI传输列表信息描述信息格式要求:同一个文件的文件名和长度用~隔开, 文件之间使用|隔开.

格式如下:

字符串

java代码描述:

for (File f in files) {

msg += f.getname() + "~" + file.length + "`";

}

等待接收方的回复, 接收方会将上述的文件描述回发给发送方

进入循环开始发送文件:

a.在发每一个文件之前, 发送方会本次发送文件的描述, 格式如上, 字符串

b.等待接收方的确认

c.开始文件字节发送, 直到该文件发送完

d.等待接收方发送确认信息, 确保文件完成发送, 进行下一个文件的传输

接收方

1.接收发送方发的文件(可能是多个)描述, 然后根据文件描述生成GUI文件传输列表

2.进入循环等待发送方发送文件

a.接收本次要接收的文件描述

b.发送确认信息

c.开始接收文件, 直到接收到的字节数和文件描述中的一致

d.发送确认信息, 进行下一个文件的接收

注意:

1.每次发文件之前都发送文件描述是为了防止连续穿两个文件导致的字节粘滞, 比如说文件1大小为1000字节, 文件2大小为24字节, 程序一次读取1024字节, 如果没有确认信息的话, 发送方发完1000字节后接着发24字节, 然后接收方一次接收了1024字节, 最终导致, 第一个文件错误, 第二个文件字节流丢失

2.如何确认端口号?

程序启动时端口设为65500端口, 发送方和接收方的角色每转换(程序未关闭的情况下发送者变为接收者, 接收者变为发送者)一次, 将端口号减一, 以避免地址已被占用的情况, 因为, 程序放弃一个TCP连接时, 操作系统并不会立即释放这个连接

内网python 仓库_GitHub - xanarry/LanTrans-desktop: 这是一个用python写的局域网传文件工具, 跨平台, 仓库中还有安卓版的工程...相关推荐

  1. 上传文件到gitee仓库的步骤

    文章目录 介绍 所用命令: 过程: 1.先创建一个文件夹,把上传文件夹资料放到新建文件夹内 2.进入文件夹,鼠标右击Git Bash Here,进去git界面 3.配置信息(第一次使用要进行配置) 4 ...

  2. vb.net 局域网传文件_没网盘咋传输文件?全平台高效传输方案一网打尽!

    我们对文件传输,一直有很强的需求.五年前我们使用网盘互相传文件,到了今天网盘的方式不免有些落后.有的网盘还要经过注册.安装.上传下载等等步骤,一不小心文件还会损坏,最气人的是速度上不去啊有木有! 如果 ...

  3. 内网计算机游戏不被检测,两台未联网的Win7电脑建立局域网游戏的方法

    说到游戏,可能很多同学都会想到在学校时的光辉岁月,每当看到多个同学在玩同一个游戏时,就会有一个疑问,两台未联网的Win7电脑怎么建立局域网游戏的?下面小编将为大家分享两台未联网的Win7电脑建立局域网 ...

  4. python裂缝检测_python 裂缝识别 这是一个使用Python和PyQt5开发的一个计算机视觉辅助裂缝标注工具 - 下载 - 搜珍网...

    压缩包 : dea0e4f4dad3f0ccc7ded70e22891ce5.zip 列表 crack-label-tool-master/ crack-label-tool-master/.giti ...

  5. 位于两个内网的结点A和B都连接到一个公网的rdv,然后A与B之间发送消息,这时消息是否还经过rdv?...

    以ResolverService的sendQuery测试 ResolverQueryMsg里面有个hopcount:Number of times a message has been forward ...

  6. 如何使用git for windows上传文件到git仓库

    背景 自己搭了个基于 gitea 的 git 仓库,但是在上传项目时发现一次最多只能上传五个文件,且目录结构无法正确识别,如果想要修改或删除的话非常麻烦 需求 对 git 仓库中的项目方便的进行增.删 ...

  7. python静态代码检查_想要开发一个供 Python 使用的静态类型检查项目

    不知道有没有类似项目,如果有的话请告诉我, 昨天发了个贴问了一下类型提示的循环导入问题,产生了一些发散式联想,能不能把现有的体系再升级一下做成一个自动检查项目,应该会挺有用的. 目前我司对于类型检查使 ...

  8. python如何连续查找字符串_在另一个字符串Python中多次查找字符串

    我尝试使用Python的预定义函数(如find和index)查看一个字符串是否存在于另一个字符串中..在 现在我的函数有两个字符串作为参数,一个是我们要搜索的字符串,另一个字符串是我们在第一个字符串中 ...

  9. python selenium 等待js加载完成_一个用python完成的RSA成功模拟JS加密完成自动登录...

    编程工具启动图 自从做了产品,很久没有正二八经的写过代码了.最近这几天由于工作需要,一时心血来潮开始写python代码,最开始以为一个自动登录应该很简单,又没有手机验证和图片验证.结果一执行卡在一个加 ...

最新文章

  1. 【c语言】蓝桥杯算法训练 整数平均值
  2. springboot 不同环境不同的配置
  3. PyTorch:将模型转换为torch.jit.ScriptModule
  4. torchtext建立词表build_vocab()时使用自己的word2vec模型
  5. 部分代码_C primer plus 第三章 (代码部分)
  6. R语言中的字符串处理函数
  7. kubernetes node节点join master 节点成功后, master节点无法发现node节点
  8. SEO HTML语义化
  9. h5打开麦克风权限录音_HTML5网页录音和上传到服务器支持PC、Android,支持IOS微信功能...
  10. Wps的两种论文标注参考文献
  11. php中的单引号和双引号
  12. 获取当前经纬度 和 通过经纬度 得到大致位置的接口
  13. 桌面应用程序与web应用程序
  14. 张小龙4个小时演讲全文:每天有1亿人教我做产品(下)
  15. 本题要求实现一个函数,输出n行空心的数字金字塔。
  16. VBS 请求WebAPI接口_如何设计WEB API
  17. 清华学霸讲计算机,清华学霸的霸气演讲!看完后才明白人与人的差距就是这样拉开的!...
  18. HTTP/HTTP/HTTP
  19. 导入式样式表CSS与链接式样式表CSS的区别
  20. Ant Design of Vue - 让 Message 组件支持手动点击关闭

热门文章

  1. Delphi多媒体设计之TMediaPlayer组件(二)
  2. Cisco 3560 Qos限速配置
  3. 知识库如何跟其他业务系统结合
  4. 续——《RedHat/Fedora等非ubuntu的Linux系统星空极速netkeeper拨号上网 》
  5. [SQL Server]用于压力测试和性能分析的两个支持实用工具[转]
  6. jQuery Mobile动态刷新页面样式
  7. php打印布尔型,PHP数据类型之布尔型的介绍_PHP
  8. timer purge_Java Timer purge()方法与示例
  9. can收发器 rx_CANOpen系列教程03 _CAN收发器功能、原理及作用
  10. java分数表示_表示Java分数的最佳方法?