# Gobang
Java语言编写的多人联网五子棋对战平台。
##目录结构
Server/ 服务器。入口为Server.java。
Client/ 客户端。入口为Client.java。
com.model/ 基于Java的对象序列化功能实现的客户端和服务器之间自定义的应用层通信协议。
##使用说明
(JDK>=1.8)编译运行Server.java启动服务器端程序,编译运行Client.java启动客户端程序。
需要先启动服务器再启动客户端,需保证服务器只启动一个,客户端可启动任意多个同时进行操作。
Server/DatabaseUtil.java 文件中包含对数据库连接的配置,需要根据实际运行环境对几个参数(包括数据库连接URL、用户名、密码、数据表名等等)做出适当更改。
##项目描述
(赶deadline完成的)课程作业,目前仍有很多bug和可以改进的地方。
##可改进的地方
1.代码整体鲁棒性一般,虽然现在可以支持多客户端的连接,且当客户端异常断开连接时服务器能继续正常运行,但是各种资源并没有释放干净,留下了诸多隐患。
2.游戏主界面的侧边栏很丑。
3.时间原因没有对单个用户不能同时在多个客户端登录的限制,如果用同一账号同时登陆多个客户端可能会出现意想不到的bug。
4.整体安全性有待提高,时间原因我没有关注如何保存用户登录状态的问题,用户身份在目前的架构里很容易伪造。
5.潜在问题:在前期查阅资料时发现Java中的序列化对象在网络中传输时有可能出现丢失部分数据的问题,为了作业的展示我只做过本地的测试,在生产环境下部署之后可能出现意想不到的问题。
##致谢
GUI设计思路、部分组件参数和图片素材来源鸣谢[https://github.com/Brioal/Game](https://github.com/Brioal/Game),虽然他们的设计中存在着过于大量的MagicNumber,导致后期代码的更新和维护十分困难,我尽力进行了一些重构工作,但目前整体的架构仍然很不乐观。
不再维护。
Gobang/Java