Skip to content

a simple socket server/client for college courses check-in

Notifications You must be signed in to change notification settings

ArtemisChief/Hyperion

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

57 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Hyperion

a simple socket server/client for college courses check-in

项目简介

采用Java编写的用于大学课堂电脑签到的桌面应用程序系统与服务器软件,使用JavaFX作为桌面应用的用户界面,利用TCP/UDP/ARP等协议进行服务器与客户端间的信息交互。

1 2 3 4

整体架构与设计思路

签到的基本原理是学生通过发送学号与电脑的MAC地址,在教师处进行检测是否是学生本人本机进行的签到行为。

整个项目系统分为三个子项目:学生端、教师端与专用服务器端。其中学生端是纯客户端,教师端既可以作为服务器端也可以作为客户端,专用服务器端是纯服务器端。

整个系统存在两种运行模式:本地服务器模式与专用服务器模式。两种模式互相独立,使用时必须采取且只能采取一种模式运行。

本地服务器模式:仅使用学生端与教师端,且这两者都需要在软件用户界面内且换到本地服务器模式。在该模式下认为,学生与教师位于同一教室之内,其网络则必然处于同一子网之下,此时需要教师端先打开,默认会开启UDP数据报的端口监听,然后教师设置好签到班级与签到次数,本地服务器状态转换到签到状态。学生通过UDP广播的方式找到同一网段中的教师端,发送学号与自机MAC地址完成签到。

专用服务器模式:使用学生端、教师端与专用服务器端,且前两者都作为客户端,需要在软件用户界面内且换到专用服务器模式。在该模式下,老师可以不用与学生处于同一子网下,且服务器不需要教师端启动才能启动,而是长期运行在一个具有公网IP的专用服务器(VPS)上。当教师需要签到时,启动教师端,设置好专用服务器IP地址,建立连接之后发送学生所在子网的默认网关的MAC地址作为位置依据,并设置好班级与签到次数,开启一次签到。专用服务器端收到教师发送的MAC地址与班级、次数,状态转换到签到状态。学生通过TCP/IP连接专用服务器端,发送学号、自机MAC地址与默认网关MAC地址完成签到。

服务器(本地、专用)返回数据意义:

0 - 签到成功

1 - 签到失败,学号与MAC地址不匹配

2 - 重复签到

3 - 本轮签到已关闭或未开启

服务器状态:

0 - 已启动,未开启签到

1 - 已启动,开启签到

专用服务器端接收分类:

0 - 来自学生的报文

1 - 来自教师的报文

任务:

(System)整体架构搭建(√)

(GUI - JavaFX)学生端图形用户界面(√)

(GUI - JavaFX)教师端图形用户界面(√)

(ARP)获取得到默认网关MAC地址(√)

(UDP)本地服务器模式 - 学生端(√)

(TCP)专用服务器模式 - 学生端(√)

(UDP)本地服务器模式 - 教师端(√)

(UI - CommandLine)专用服务器端用户界面(√)

(TCP)专用服务器模式 - 教师端(√)

(TCP)专用服务器模式 - 专用服务器端(√)

(Security)传输数据加密(√)

About

a simple socket server/client for college courses check-in

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Languages