网络编程及项目思路

计算机和计算机之间通过网络进行数据传输

常见的软件架构:

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

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软件包:(工具类)

数据库

1.用户表(user)

  • id(用户ID,主键)
  • username(用户名)
  • email(邮箱)
  • password(密码)
  • userTyte(用户类型)

2.班级表(class)

  • id(班级ID,主键)
  • name(班级名称)
  • user_id(教师ID,外键)

3.用户-班级表(user_class)

  • id(关系ID,主键)
  • user_id(用户ID,外键)
  • class_id(班级ID,外键)

4.课程-班级表(subject_class)

  • id(课程ID,主键)
  • class_id(班级ID,外键)

5.作业表(homework)

  • id(作业ID,主键)
  • class_id(班级ID,外键)
  • content(作业内容)
  • type(作业类型:主观题、选择题)
  • createDate(发布时间)
  • dueDate(截止时间)

6.学生作业表(student_homework)

  • id(学生作业ID,主键)
  • user_id(用户ID,外键)
  • homework_id(作业ID,外键)
  • submissionType(提交类型:图片,文字,文件)
  • status(作业状态:未提交,已提交,已打回,已批改)
  • updated(更新时间)

7.课堂互动表(class_interction)

  • id(资料ID,主键)
  • class_id(班级ID,外键)
  • teacher_id(教师ID,外键)
  • type(类型:签到、问题抢答、随机选人)
  • update(更新时间)

8.发布的资料表(materials)

  • id(资料ID,主键)
  • class_id(班级ID,外键)
  • teacher(教师ID,外键)
  • title(标题)
  • file(文件路径)
  • update(更新时间)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

明里灰

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值