66 lines
1.7 KiB
Markdown
66 lines
1.7 KiB
Markdown
---
|
|
title: QDrop
|
|
date: 2024-12-18
|
|
categories: [工作, 项目]
|
|
tags: [项目]
|
|
---
|
|
|
|
|
|
想法
|
|
|
|
- 打开软件,对设备进行互相认识
|
|
- 可以删除设备
|
|
- 发送消息,发送文件
|
|
- 同一网络直接发送
|
|
- 文本直接受
|
|
- 文件直接保存
|
|
- 不同网络则不待办
|
|
- 连接网络,则直接发送
|
|
|
|
|
|
|
|
开发一个软件,功能如下
|
|
|
|
1、打开软件,同一局域网的设备进行添加、也可以删除设备
|
|
|
|
2、向设备之间发送消息,发送文件;同一局域网直接发送;不同网络则为待办任务,连接同一网络,则直接发送
|
|
|
|
技术栈
|
|
|
|
1、不使用(依赖)服务器
|
|
|
|
2、使用java语言、网络通信框架使用netty
|
|
|
|
先以控制台为前端,主要开发后端功能
|
|
|
|
|
|
|
|
|
|
|
|
设备发现:
|
|
|
|
- 使用UDP广播在局域网内发现设备
|
|
- 维护在线设备列表
|
|
- 定期检查设备在线状态
|
|
|
|
消息通信:
|
|
|
|
- 使用Netty框架建立TCP连接
|
|
- 支持文本消息和文件传输
|
|
- 离线消息存储和重发机制
|
|
|
|
控制台界面:
|
|
|
|
- 显示在线设备列表
|
|
- 发送消息和文件的命令行接口
|
|
- 查看消息历史记录
|
|
|
|
|
|
|
|
修改端口或设备名称
|
|
|
|
文件加密、文件压缩
|
|
|
|
|
|
|
|
使用javaFX编写前端代码,暂且不用和后端相结合,主界面分为三部分,上边是一排建立连接的设备,显示每个设备的圆框头像、名称,头像对应设备类型,头像地址在resource/images/下,并且在线设备的圆框是被亮光包围,最右侧是一个加号按钮,点击提供其他功能;中间是通信内容,要求通信的消息标签类似telegram、whatsAPP,自己发送的消息是淡绿色背景、黑色字体、带时间;下面部分是一个选择本地文件的按钮、输入框、发送按钮 |