# JavaSwing课设用CS架构框架 **Repository Path**: zekdot/java_class_cs_frame ## Basic Information - **Project Name**: JavaSwing课设用CS架构框架 - **Description**: 用于Java Swing的CS架构项目,需要使用JSONObject来协助实现功能,主要目标是简化网络连接的部分 - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 3 - **Forks**: 0 - **Created**: 2018-09-20 - **Last Updated**: 2022-01-17 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # JavaSwing课设用CS架构框架 ## 描述 用于Java Swing的CS架构项目,需要使用JSONObject来协助实现功能,主要目标是简化网络连接的部分 ## 目录结构 核心的文件如下: server |-Envelope 信封类 |-FunInterface 功能接口 |-ServerFunction 连接框架 client |-Envelope 信封类 |-ClientFunction 请求类 ## 使用方式 ### 客户端 当需要发送一个请求到服务端时,实例化一个ClientFunction,参数分别是服务器IP和端口 ClientFunction test=new ClientFunction("127.0.0.1", 10000); //新建一个请求类 发送请求的时候,首先要构造一个信封类,其中格式需要与服务端进行协商,通常情况下,客户端发送的Envelope的code表示请求类型,object表示携带的信息,message可以用来传输某种文字信息 如: JSONObject json=new JSONObject(); //将数据放入 json.put("username", "test"); //放入数据 json.put("password", "1256"); Envelope enve=new Envelope(0,"success",json);//新建信封,code为0表示为注册 发送请求,并接受服务端的响应 Envelope res=test.sendRequest(enve); 从服务器取出返回的Envelope,并根据code判断返回情况再进行相应处理,通常,code为0表示成功,可以从object里取出服务器返回的对象并进一步处理,否则不成功,并可以直接取出其message的信息返回给用户 if(res.getCode()==0){ //如果服务器响应状态为0 System.out.println("注册成功"); //注册成功 }else{ //否则 System.out.println(res.getMessage()); //打印失败原因 } ### 服务端 具体服务的实现类需要集成FunInterface接口并实现deal方法,它会传入一个参数,是来自客户端的信封,因此首先将信封实例化 @Override public String deal(String str) { Envelope env=new Envelope(str); //首先将请求实例化,便于进一步处理 根据客户端发来的信封的code值判断处理方式,并进行处理,最后返回仍为Envelope对象 JSONObject json=JSONObject.fromObject(env.getObject()); if(env.getCode()==0){ //如果是处理注册 if(userList.get(json.getString("username"))!=null){ //如果用户名已经被注册 return new Envelope(1,"用户名已被注册",null).toString(); //返回相关信息 } userList.put(json.getString("username"),json.getString("password"));//放入一个用户名--密码对 System.out.println("当前数据库信息为"+JSONObject.fromObject(userList).toString()); return new Envelope(0,"success",null).toString();//返回注册成功信息 } 实现了处理逻辑之后,即可开放对应的端口,使之持续进行服务 public static void main(String[] args) { new Thread(new ServerFunction(10000,new LoginFun())).start();//在10000号端口开启注册登录服务 }
*文件中附带一个注册登录的演示DEMO