QuickServer开发手册整理

上传人:桔**** 文档编号:552943682 上传时间:2024-02-11 格式:DOC 页数:32 大小:176KB
返回 下载 相关 举报
QuickServer开发手册整理_第1页
第1页 / 共32页
QuickServer开发手册整理_第2页
第2页 / 共32页
QuickServer开发手册整理_第3页
第3页 / 共32页
QuickServer开发手册整理_第4页
第4页 / 共32页
QuickServer开发手册整理_第5页
第5页 / 共32页
点击查看更多>>
资源描述

《QuickServer开发手册整理》由会员分享,可在线阅读,更多相关《QuickServer开发手册整理(32页珍藏版)》请在金锄头文库上搜索。

1、QuickServer开发手册(1)- 介绍 QuickServer是一个免费的开源Java库,用于快速创建健壮的多线程、多客户端TCP服务器应用程序。使用QuickServer,用户可以只集中处理应用程序的逻辑/协议,从而方便的建立功能强大的服务器应用。该程序由Akshathkumar Shetty设计和实现。 QuickServer安装目录下的example中有演示其功能的例子,最新的例子和文档可以通过网站 http:/www.quickserver.org/或http:/ 该指南适用于所有想要学习和使用QuickServer的人,阅读该指南应具备基本的Java编程知识,基本的网络和soc

2、kets方面的知识也会有所帮助1.为什么需要QuickServer? 无论何种编程语言,socket编程对程序员来说都不是一件容易的事,创建多线程、多客户端的服务器socket更像一场恶梦了。在每个新的软件中处理多 socket连接,我们都要浪费大把时间编写大量重复的代码。QuickServer因而诞生使用Java创建多线程、多客户端服务器应用。2.基本构造QuickServer在应用逻辑上为开发者提供了四个类oClientCommandHandler 处理与客户端的交互使用字符串命令oClientObjectHandler 可选类 处理与客户端的交互使用对象命令oAuthenticator

3、可选类 客户端验证oClientData 可选类 客户端数据载体(支持类)下面的图表显示了QuickServer库的基本构造。QuickServer模块上七个辐条表示七个方法:ojava.lang.String info()oint getServiceState()oboolean initService(java.lang.Object config)oboolean startService()oboolean resumeService()oboolean suspendService()oboolean stopService() 与QuickServer模块相连接的四个组件中只有C

4、lientCommandHandler是必须的。 QuickServerConfig对象由initService()方法构建。它实现了QuickServer,在读取XML配置后,QuickServerConfig用于QuickServer配置。 ClientHandler线程对象用于客户端缓冲池。可选的ClientData类与ClientHandler类关联,ClientHandler对 象容器参考ClientCommandHandler,ClientObjectHandler(可选),Authenticator(可选)对象包含在 QuickServer主函数中。 注意:上图中并未显示QSAd

5、minServer,它是图中QuickServer的组成部分。3.主要特点o创建多线程、多客户端TCP服务器应用程序o支持安全服务的创建:SSL, TLSo清楚的分离服务、协议、验证逻辑oGUI图形界面远程管理支持oCommand Shell对服务器的本地管理o无须断开客户端连接的重启或延迟服务o为线程的再利用和大多数的使用对象建立缓冲池o完全的日志支持(Java构建)o支持发送和接收字符串、字节、二进制、序列化Java对象o在同样的xml中支持能够存贮指定应用数据的XML配置o支持通过IP地址限制服务o支持基于XML的JDBC映射o支持服务配置模式o支持从xml加载/重新加载用于jar包o在

6、QuickServer中添加处理hookso指定允许的最大客户端连接数o在通常的TCP连接上支持谈判安全连接o支持鉴别和查询客户端o附带典型例子FTPServer, CmdServer,EchoWebServer, ChatServer4.1.4版的新功能o为QuickServer添加安全模式:SSL, TLSo添加SecureManagerLoader管理安全模式o在通常的TCP连接上添加谈判安全连接o添加初始化服务hookso为通信添加二进制模式o为QsAdminServer通信添加QSAdminAPIo为QuickServer 添加findAllClientByKeyo添加Connect

7、ionLostException类o改进ClientHandler、安全配置o新例子XmlAdder:一个简单的xml服务,可添加两个整数o新例子PipeServer:一个简单的重定向服务窗体顶端QuickServer开发手册(2)- 安装 1. 运行环境QuickServer 1.2以上的版本需要(其实在偶看来一个1.4版以上JDK足矣): 推荐1.4版以上Java虚拟机,最低1.3版(未经测试). Java Logging API(下列之一)o java.util.logging包 JDK 1.4版自带o Lumberjack库 http:/ XML 解析器 (下列之一)o SAX (面向

8、XML 2.0的API) JDK 1.4版自带o JAXP (面向XML解析的Java API) 1.1 JDK 1.4版自带o Xerces http:/xml.apache.org/xerces2-jo Crimson http:/xml.apache.org/crimson Jakarta公共组件Digester, Poolo 这些产品包含在Apache开发的软件中(http:/www.apache.org/)。Jar包都在以下的库中:BeanUtils, Collections, Logging. http:/jakarta.apache.org/commons/components.

9、html. Apache软件许可证在文件“apache_license.txt”中。2. 安装 目前最新的1.4.1版QuickServer可在http:/www.quickserver.org/download.html下载。安装QuickServer,假设安装路径为$INSTALL_PATH。 在CLASSPATH中添加$INSTALL_PATHdistQuickServer.jar,在PATH中添加$INSTALL_PATHbin。 另外测试socket的通讯软件推荐SockTest,在http:/ 可下载到最新版本。Windows自带的telnet也可以进行测试。QuickServer

10、开发手册(3)- 构建EchoServer 学习怎样使用QuickServer库的一个好的方法是学习它提供的例子。在QuickServer安装路径下的examples文件夹里有许多典型的例子。 下面的章节里我们模仿其中的一个例子EchoServer来构建一个服务器。EchoServer是一个简单的TCP服务器,主要功能是将用户发送的字符串加上前缀Echo :后返回。虽然这个例子可用性不强,但它是一个对QuickServer所有特点的一个很好的示范。我们从构建一个最基本的服务器开始,以后慢慢给它添加新的功能。1.代码 首先实现EchoServer最基本的功能:将用户发送的字符串加上前缀Echo

11、:后返回。 在本地创建一个文件夹存放需要的代码,如在c:projects中建立echoserver文件夹,然后创建一个类EchoServer.java:01 package echoserver;0203 import .*;04 import .server.*;0506 import java.io.*;0708 public class EchoServer 09 public static void main(String s) 10 QuickServer myServer =11 new QuickServer(echoserver.EchoCommandHandler);12 m

12、yServer.setPort(4123);13 myServer.setName(EchoServer v 1.0);14 try 15 myServer.startServer();16 catch(AppException e)17 System.err.println(Error in server : +e);18 19 20 在第10行和第11行定义了一个QuickServer对象myServer,通过一个String对象 echoserver.EchoCommandHandler声明了要加载的类,这个类面向所有客户端做命令处理器,实现了 .server.ClientCommand

13、Handler接口,我们即将创建。 第12行设置了一个服务器端口用来做监听,然后设置整个应用的名字(第13行)。最后启动服务(第15行)。 接下来为EchoServer创建一个实现.server.ClientCommandHandler接口的类EchoCommandHandler.java,用来处理服务器发送的命令。01 / EchoCommandHandler.java02 package echoserver;0304 import .*;05 import java.io.*;06 import .server.ClientCommandHandler;07 import .server

14、.ClientHandler;0809 public class EchoCommandHandler implements ClientCommandHandler 1011 public void gotConnected(ClientHandler handler)12 throws SocketTimeoutException, IOException 13 handler.sendClientMsg(+);14 handler.sendClientMsg(| Welcome to EchoServer v 1.3 |);15 handler.sendClientMsg(| Send Quit to exit |);16 handler.sendClientMsg(+);17 18 public void lostConnection(ClientHandler handler)19 throws IOException 20 handle

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 资格认证/考试 > 自考

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号