| <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> |