1. 实现原理:
(1)客户端:
①:Client类:表示客户端的主线程,在这个类中定义了客户端的UI界面,所以javafx的按钮事件写在其中;
②:Lisener类:客户端最重要的类,它是一个线程,作为内部类可以使用Client类里面的UI,Lisener主要的工作是负责和服务端通信,当收到服务端传来的信息时将信息反馈在UI界面上,也可以将UI界面上的信息发送给服务端,Lisener类在初始化Client类时启动;
(2)服务端:
①:Server类:表示服务端的主线程,在这个类中定义了所有服务端需要的线程,这个类中还定义了Player的一个Vector集合players;
②:Player类:服务端最重要的类,是一个线程、在客户端和服务器建立连接后初始化并加入到players容器里,它主要负责和对应的客户端进行通信,它会接收匹配请求MATCH、落子信息MSG:NAME:XY等客户端传来的信息;
③:Link类:是服务器初始化后就启动的线程,它负责时时刻刻不间断的监听客户端传来的连接请求,当有连接请求时,link将accept得到的socket封装成一个Player类存到players中,并将这个Player启动;

本文详细介绍了基于JavaFX和Socket技术实现联机五子棋的游戏逻辑。客户端通过Client类和Lisener类进行UI交互与服务器通信,服务端通过Server类、Player类和Link类进行连接管理和对局匹配。文章探讨了为何使用多个线程、如何封装客户端消息以及JavaFX事件监听的相关问题,包括事件监听的注销、覆盖、优先级和线程安全性。
最低0.47元/天 解锁文章
3621

被折叠的 条评论
为什么被折叠?



