<body> | |
QuickServer is an open source Java library/framework for quick creation | |
of robust multi-client TCP server applications. With QuickServer you can | |
concentrate on just the application logic/protocol on hand. | |
<br/> <br/> | |
QuickServer provides an abstraction over the ServerSocket, Socket and | |
other network and input output classes and it eases the creation of | |
powerful network servers. | |
<table><tr><td> | |
<img src="quickserver_logo.gif" width="90" height="60" border="0" alt="QuickServer" align="bottom" valign="bottom" /> | |
</td><td> | |
Example programs demonstrating the use of the library can be found | |
with the QuickServer distribution [examples folder]. | |
Latest examples, documentation is available through the <a href="http://www.quickserver.org">website</a>. | |
</td></tr></table> | |
<br> <br> | |
Brief Architecture<br> | |
---------------------<br> | |
QuickServer divides the application logic of its developer over eight | |
main classes, | |
<br> | |
<ul> | |
<li>{@link org.quickserver.net.server.ClientEventHandler} [Optional Class]<br> | |
Handles client events. | |
<li>{@link org.quickserver.net.server.ClientCommandHandler} [#]<br> | |
Handles client interaction - Character/String commands. | |
<li>{@link org.quickserver.net.server.ClientBinaryHandler} [#]<br> | |
Handles client interaction - Binary data. | |
<li>{@link org.quickserver.net.server.ClientObjectHandler} [#]<br> | |
Handles client interaction - Java Object commands. | |
<li>{@link org.quickserver.net.server.ClientAuthenticationHandler} [Optional Class]<br> | |
Used to Authenticate a client. | |
<li>{@link org.quickserver.net.server.ClientData} [Optional Class]<br> | |
Client data carrier (support class) | |
<li>{@link org.quickserver.net.server.ClientExtendedEventHandler} [Optional Class]<br> | |
Handles extended client events. | |
</ul> | |
<p> | |
[#] = Any one of these have to be set based on default DataMode for input. | |
The default DataMode for input is String so if not changes you will | |
have to set ClientCommandHandler. | |
</p> | |
For more info view QuickServer Wiki - <A HREF="http://code.google.com/p/quickserver/wiki/Architecture">Architecture</A>. | |
<br/> <br /> | |
QuickServer Source - <a href="https://github.com/QuickServerLab">GitHub</a>. | |
<br /> <br /> | |
Major Features<br /> | |
---------------------<br /> | |
* Create multi-client TCP server applications.<br /> | |
* Support for secure server creations: SSL, TLS. {@link org.quickserver.util.xmlreader.Secure}<br /> | |
* Support for thread per client (multi-threaded) - Blocking Mode.<br /> | |
* Clear separation of server, protocol and authentication logic.<br /> | |
* Remote administration support: {@link org.quickserver.net.qsadmin.QSAdminServer} (With support plugable application commands).<br /> | |
* Command Shell for local administration of server. <br /> | |
{@link org.quickserver.net.qsadmin.QSAdminServer#setShellEnable}<br /> | |
* GUI based remote administration: QsAdminGUI (with support for plug-ins - {@link org.quickserver.net.qsadmin.gui.PluginPanel})<br /> | |
* Restart or Suspend the server without killing connected clients.<br /> | |
* Inbuilt pools for reusing of threads and most used Objects.<br /> | |
* Full logging support [Java built in Logging].<br /> | |
* Support for sending and receiving Strings, Bytes, Binary and serialized java objects.<br /> | |
* Support for identifying and searching a client. {@link org.quickserver.net.server.ClientIdentifiable}<br /> | |
* Support for xml configuration with ability to store application specific | |
data in the same xml. <br /> | |
[<a href="XMLConfiguration.xml" target="_new">View Sample</a>]<br /> | |
* Support for xml Based JDBC Mapping - {@link org.quickserver.sql.DBPoolUtil}.<br /> | |
* Support for Service Configurator pattern. {@link org.quickserver.net.Service}<br /> | |
* Support for restricting access to server by ip address.<br /> | |
* Support for loading/reloading application jar from xml.<br /> | |
* Ability to add process hooks into QuickServer. {@link org.quickserver.net.ServerHook}, {@link org.quickserver.net.InitServerHook}<br /> | |
* Ability to specify maximum number of clients allowed.<br /> | |
* Support for negotiating secure connection over normal tcp connection.<br /> | |
* Nice easy examples come with the distribution - FTPServer, CmdServer, EchoWebServer, ChatServer, SecureEchoWebServer, XmlAdder, PipeServer, Filesrv.<br /> | |
<br> <br> | |
Whats New in 2.1.0 ?<br> | |
------------------------<br> | |
* Added support for uptime in Host (QuickServer Client)<br/> | |
* Supports null/no banner when server starts<br /> | |
* Fixed load pattern logic RandomLoadPattern, RoundRobinLoadPattern | |
(was using index when client key was set)<br /> | |
* Added getHighestActiveCount() method to Object Pools<br /> | |
* Added getHighestActiveClientCount method to QuickServer object<br /> | |
* Defaulted SSL to TLS<br /> | |
* Bug fix for ThreadPool not reducing to max ideal | |
(stay in wait state n increase over time)<br /> | |
* Bug fix for Client (HashedLoadPattern) | |
* Disabled non blocking mode (no more supported) | |
<br> <br> | |
QuickServer Credits <br> | |
---------------------<br> | |
Thanks to everyone who helped me in this project. Thanks to all users | |
who posted/sent their valuable comments and suggestion. | |
I would also like to thank all the people who have posted/sent bug | |
reports. Please do keep reporting any bugs that you find in QuickServer | |
that way you will be helping in improving it. | |
Do visit our web site for full credits listing. | |
<br> <br> | |
Get Support <br> | |
---------------------<br> | |
Do post your questions, suggestions, bug-reports, enhancement-requests | |
etc. at <a href="http://www.quickserver.org/forum/">Developers Forum</a>. Please do not contact development team directly unless you really would like to send a private message. | |
<br/> | |
Note: We provide a higher level of support to individuals and companies | |
who have contributed to QuickServer project in some way. | |
There are a number of ways to contribute, do visit our web site for details | |
on ways of contributing to QuickServer. | |
<br> <br> | |
Request to Developers<br> | |
---------------------<br> | |
If you would like to contribute to the development of QuickServer | |
please do get in touch with me. I am always on the lookout for | |
people who can contribute to make this library even better. | |
<br/> | |
If you use QuickServer in your development and if you would like to | |
share your experience with the QuickServer community, please feel | |
free to post it in the QuickServer Forums. Thanks | |
<br> <br> | |
Web Site : <a href="http://www.quickserver.org" target="_blank">http://www.quickserver.org</a> | |
</body> |