CSFrameWork
CSFrameWork
魔幻音
如果世界上真的有奇迹,那只是努力的另一个代名词。
展开
-
(JAVASE)CSFrameWork详解(Client及ClientConversation)
ClientConversation继承于communication,所以在该层就该将抽象方法具体实现,完善其对信息的具体操作。client是提供给app层调用的类,其包含的方法都是发出请求,实际是调用了conversation里的方法通过communication向服务端发信息。conversation层处理信息的发出和接受,发出是提供给client层并进一步给app层使用的,信息的接受就是完成dealNetMessage抽象方法的实现,对应不同的command调用适配器中的不同方法。首先对于所有的原创 2021-01-18 15:20:52 · 166 阅读 · 0 评论 -
(JAVASE)CSFrameWork详解(NetMessage)
按照原本socket所提供的writeUTF以及readUTF方法,底层communication传输接受的数据本应是字符串类型的,但是对于字符串类型想要规定一个信息格式太过于复杂,所以创建了一个NetMessage类用于规范信息格式。组成:private ENetCommand command; private String source; private String target; private String action; private String message;总共由5部分原创 2021-01-18 12:43:20 · 177 阅读 · 0 评论 -
(JAVASE)CSFrameWork详解(communication层及笼统概述)
首先先引入一个配置文件public interface INetConfig { String ip = "127.0.0.1"; int port = 54123; default void close(InputStream is, OutputStream os, Socket socket) { if (null != is) { try { is.close(); } catch (IOException e) { } finally { is =原创 2021-01-18 12:26:28 · 153 阅读 · 0 评论 -
(JAVASE)CSFrameWork详解(Request处理、action、反射机制)
在app层,会有许多由开发者书写的新方法,这些方法是无法从底层预支的,但是在底层代码书写请求、回复等操作时,应该对应不同action,调用其处理方法。相当于对action的处理,基于反射机制调用未来配置的方法。而这些方法的获取此次通过解析xml实现,如:<actions> <action name="login" class="StudentAction" method="login"> <parameter name="id" type="string">&原创 2021-01-20 15:39:46 · 158 阅读 · 0 评论 -
(JAVASE)CSFrameWork详解(整体工作图解)
连接过程:服务端通过start命令开启运转,但并未开始监听,当运行到start中线程的启动时,伴随run方法开始监听客户端介入请求。客户端开启,由config文件记录服务器ip及端口,通过服务器ip、端口建立一个socket,并且实例化ClientConversation,将socket及Client本身传进去(socket为底层信息传递作用,Client加入为了使Client层与conversation层交互更加方便及以便使用Client中还未定义,等未来定义的方法)。当socket建立好,即发送.原创 2021-01-19 19:56:14 · 154 阅读 · 0 评论 -
(JAVASE)CSFrameWork详解(Server及ServerConversation、观察者视角)
在一个服务器里做到对多个客户端的管理,可以通过map实现。public class ServerConversationPool { private Map<String, ServerConversation> conversationPool; ServerConversationPool() { this.conversationPool = new HashMap<>(); } void addClient(ServerConversation clie原创 2021-01-18 16:22:01 · 116 阅读 · 0 评论