计算机和计算机之间通过网络进行数据传输
常见的软件架构:
C/S:客户端/服务器
- 画面可以做的非常精美,用户体验好
- 需要开发客户端,也需要开发服务端
- 用户需要下载和更新的时候太麻烦
B/S:浏览器/服务器
- 不需要开发客户端,只需要页面+服务端
- 用户不需要下载,打开浏览器就能使用
- 如果应用过大,用户体验收到影响
网络编程三要素
IP
- 设备在网络中的地址,是唯一的标识
IPv4是目前的主流方案,目前已经用完了
IPv6是为了解决IPv4不够用而出现的
特殊IP地址:127.0.0.1,也可以是localhost:是回送地址也称本地回环地址,也称本机IP,永远只会寻找当前所在本机。
常用的CMD命令:
ipconfig:查看本机IP地址
ping:检查网络是否连通
端口号
- 在设备中的唯一标识
由两个字节表示的整数,取值范围:0~65535
其中0~1023之间的端口号用于一些知名的网络服务或者应用
我们自己用1024以上的端口号
应该端口号只能被一个应用程序使用
协议
- 数据在网络中传输的规则,常见的协议:UDP、TCP、http、https、ftp
计算机网络中,连接和通信的规则被称为网络通信协议
TCP/IP参考模型
UDP协议(用户数据报协议)
是面向无连接的通信协议,不管用户是否收到
速度快,有大小限制,一次最多发送64K,数据不安全,易丢失数据
发送数据
- 创建发送端的DatagramSocket对象
创建对象时:
绑定端口,就是通过这个端口往外发送
空参:所有可用的端口随机一个进行使用
有参:指定端口号进行绑定
- 数据打包
- 发送数据
- 释放资源
UDP的三种通信方式:
单播:以前的代码就是单播
组播:组播地址:224.0.0.0~239.255.255.255,其中224.0.0.0~224.0.0.255为预留的组播地址
广播:广播地址:255.255.255.255
接收数据
- 创建端的DataGgramSocket对象
在接受的时候,一定要绑定端口
而且绑定的端口一定要和发送的端口保持一致
- 接受打包好的数据
- 解析数据包
- 释放资源
TCP协议(传输控制协议)
是面向连接的通信协议
速度慢,没有大小限制,数据安全
项目设计思路
用户系统:
- 登录
- 注册
- 忘记密码
课堂互动:
- 签到
- 抢答
- 随机选人
学生:
- 写作业:图片、文件、文字
- 加入班级
- 下载资料
教师:
- 发布资料
- 创建班级
作业:
- 发布作业:主观题、选择题
- 打回作业
- 批改作业
- src
- sample
- fxml
- images
- java
- controllers
- models
- services
- utils
- sample
FXML文件:
- login.fxml(登录)
- registerTeacher.fxml(注册)
- ForgetPassword(忘记密码)
- ClassroomInteraction.fxml(班级)
- CreateClass.fxml(创建班级)
- JoinClass.fxml(加入班级)
- StudentDashboard.fxml(学生总表)
- TeacherDashboard.fxml(老师总表)
- RandomSelection.fxml(随机选人)
- PublishHomework.fxml(发布作业)
- HomewordSubmission.fxml(提交作业)
- DownloadFiles.fxml(下载文件)
- RejectHomework.fxml(打回作业)
- CorrectHomework.fxml(批改作业)
Models软件包:
- User.java
- Student.java
- Teacher.java
- Classroom.java
- File.java
- Homework.java
- HomeworkSubmission.java
Services软件包:
- UserService.java
- ClassroomSevice.java
- FileSevice.java
- HomeworkService.java
Utils软件包:(工具类)