IntraSend是一款基于QT C++开发的局域网文件传输工具,专注于提供安全、高效、便捷的文件传输体验。通过直观的界面设计和强大的技术实现,让用户在局域网内轻松分享文件,无需依赖外部网络服务。
- 实现基于好友/联系人机制的访问控制
- 支持文件类型过滤,防止恶意文件传输
- 提供单日接收次数限制,有效防止骚扰
- 可屏蔽特定联系人,确保传输环境安全
- 类似IM软件的联系人列表界面
- 支持添加、删除、分组管理联系人
- 实时显示联系人在线状态
- 支持内网设备自动发现功能
- 支持拖拽文件到联系人直接发送
- 实时显示传输进度和速度
- 支持断点续传功能
- 支持文件夹传输
- 可设置传输速度限制
- 详细的文件传输日志记录
- 传输历史记录查询
- 可设置接收目录白名单
- 文件自动分类存储功能
- 网络层:基于QTcpSocket/TcpServer实现可靠的TCP连接
- 协议层:自定义协议封装,包含头部信息和文件数据
- 传输层:多线程传输管理,提高传输效率
- 应用层:QT界面框架,提供友好的用户交互体验
- 自定义协议:设计包含文件信息、传输控制等头部信息的协议格式
- 多线程管理:使用QT的线程池管理并发传输任务
- 断点续传:实现文件传输断点检测和续传机制
- 内网发现:利用UDP广播实现内网设备自动发现
- 安全机制:实现基于联系人的权限控制和防骚扰功能
- 联系人列表:类似IM软件的联系人界面,显示在线状态
- 传输窗口:显示实时传输进度、速度和历史记录
- 设置面板:配置接收目录、安全选项、传输参数等
- 用户添加联系人或等待内网设备发现
- 拖拽文件到目标联系人
- 系统自动建立连接并开始传输
- 实时显示传输进度和状态
- 传输完成后记录到历史日志
- 支持完整文件夹结构的传输
- 自动创建目标目录结构
- 保持文件权限和时间戳
- 可设置全局或单任务传输速度限制
- 智能调整带宽分配,确保系统流畅运行
- 根据文件类型自动分类存储到不同目录
- 支持自定义分类规则
- 无需手动添加,自动发现局域网内的其他IntraSend用户
- 显示设备名称、IP地址和在线状态
- 可将特定联系人加入黑名单
- 阻止黑名单用户的所有传输请求
- 可设置允许接收的文件类型白名单
- 自动拒绝不符合条件的文件传输
- 可设置单日接收文件的最大次数
- 超过限制后自动拒绝新的传输请求
- 操作系统:Windows 7+ / Linux / macOS
- Qt版本:Qt 5.12+
- 编译器:支持C++11及以上标准的编译器
- 网络环境:局域网环境
- 克隆项目代码
- 使用Qt Creator打开项目文件
- 配置编译环境
- 编译并运行
- 启动应用程序
- 设置用户名和设备名称
- 配置接收目录
- 调整安全选项
- 在联系人列表界面点击"添加联系人"
- 输入对方IP地址和用户名
- 等待对方确认
- 从文件管理器拖拽文件到目标联系人
- 确认传输参数
- 点击"发送"按钮
- 当收到传输请求时,系统会自动处理(基于安全设置)
- 文件会保存到配置的接收目录
- 传输完成后会有通知提示
- 实现基本的文件传输功能
- 开发联系人管理系统
- 构建基础界面框架
- 实现断点续传
- 添加文件夹传输支持
- 开发内网设备自动发现
- 完善权限与安全机制
- 优化传输速度和稳定性
- 添加防骚扰功能
欢迎对本项目提出建议和贡献代码!如有问题或建议,请通过以下方式联系:
- 提交Issue
- 发起Pull Request
- 联系项目维护者
本项目采用GPL-3.0许可证,详见LICENSE文件。
IntraSend - 让局域网文件传输更简单、更安全!