Skip to content

Latest commit

 

History

History
263 lines (239 loc) · 10.6 KB

README.md

File metadata and controls

263 lines (239 loc) · 10.6 KB

📨 JavaServerClientAPI

COMMIT_STATUS

📖 Jump to JavaDocs --->

📑 Library Structure

jsc
├── jConnection
   ├── JCloseEventConsumer.java
   ├── JConnection.java
   └── JConnectionManager.java
├── jEventManager
   ├── JEventCode.java
   ├── JEventConsumer.java
   ├── JEventDataSender.java
   ├── JEventManager.java
   └── JEventType.java
├── jMessageHandler
   ├── JFileConsumer.java
   ├── JMessageCode.java
   ├── JMessageConsumer.java
   ├── JMessageDelimiter.java
   ├── JMessageFormatHandler.java
   ├── JMessageSender.java
   └── JMessageType.java
├── jObjectParser
   ├── JObjectParseException.java
   └── JObjectParser.java
└── jServer
    ├── JClientConnectionsHandler.java
    ├── JConnectionHandler.java
    ├── JRequestManager.java
    ├── JResponseSender.java
    ├── JServer.java
    └── JSocketConsumer.java

5 directories, 23 files

*click any of the above highlighted file to navigate to its source code

🏗️ JSC Architecture

  • System Design

    JSC system architecture
  • JSC Integration

    JSC system integration

🎢 Getting Started

  • Server Side:

    • Server implementation:

      • EchoServer.java
        import jsc.jServer.JServer;
        import java.io.IOException;
        
        public class EchoServer {
            public static void main(String []s){
                try{
                    JServer echoServer = new JServer(EchoJRequestManagerImpl.class);
                    echoServer.start();
                }catch (IOException e){
                    System.out.println("Unable to start server :(");
                }
            }
        }
      • EchoJRequestManagerImpl.java
        import jsc.jServer.JRequestManager;
        
        public class EchoJRequestManagerImpl extends JRequestManager {
            @Override
            public void accept(String req){    
                //write your logic here to serve the request
                
                System.out.println("Received Request: "+req);   
                write(req);
            }
        }
      • Default server port: 5656
    • Run Server:

      javac -cp JSERVER.jar EchoJRequestManagerImpl.java
      javac -cp JSERVER.jar:. EchoServer.java
      java -cp JSERVER.jar:. EchoServer
  • Client Side:

    • Client implementation:

      • TestRelayEchoClient.java
        import jsc.jConnection.JConnection;
        
        import java.io.IOException;
        import java.util.Scanner;
        
        public class TestRelayEchoClient {
        
            public static Scanner scanner = new Scanner(System.in);
            public static void main(String []s){
                try{
                    JConnection jConnection = new JConnection("127.0.0.1", 5656, (res)->{
                        //write your logic here to consume the response
                        System.out.println(res);
                    });
                    jConnection.run();
                    System.out.println("Write your message and press enter...(write \"exit\" to stop)");
                    String msg;
                    while(jConnection.isConnected()){
                        msg = scanner.nextLine();
                        if(msg.equals("exit")){
                            break;
                        }
                        jConnection.write(msg);
                    }
                    jConnection.close();
                    System.out.println("----------- Bye :) -----------");
                }catch (IOException ioE){
                    System.out.println("Server connection lost, check your network connection :(");
                }
            }
        
        }
      • Output:
        Write your message and press enter...(write "exit" to stop)
        Hello, Server!
        Hello, Server!
        JSC is perfectly working :)
        JSC is perfectly working :)
        exit
        ----------- Bye :) -----------
        anonymous disconnected!
        

🚀 Proof of Concept:

  1. Gameholic

🗃️ Project Structure

STATUS IDE

JSC
├── JConnection
   ├── JConnection.iml
   ├── pom.xml
   ├── src
      ├── main
         ├── java
            └── jsc
                ├── jConnection
                   ├── JCloseEventConsumer.java
                   ├── JConnection.java
                   └── JConnectionManager.java
                ├── jEventManager
                   ├── JEventCode.java
                   ├── JEventConsumer.java
                   ├── JEventDataSender.java
                   ├── JEventManager.java
                   └── JEventType.java
                ├── jMessageHandler
                   ├── JFileConsumer.java
                   ├── JMessageCode.java
                   ├── JMessageConsumer.java
                   ├── JMessageDelimiter.java
                   ├── JMessageFormatHandler.java
                   ├── JMessageSender.java
                   └── JMessageType.java
                └── jObjectParser
                    ├── JObjectParseException.java
                    └── JObjectParser.java
         └── resources
      └── test
          └── java
              └── jsc
                  └── jConnection
                      └── JConnectionTest.java
   └── target
       ├── classes
          └── jsc
              ├── jConnection
                 ├── JCloseEventConsumer.class
                 ├── JConnection.class
                 └── JConnectionManager.class
              ├── jEventManager
                 ├── JEventCode.class
                 ├── JEventConsumer.class
                 ├── JEventDataSender.class
                 ├── JEventManager.class
                 └── JEventType.class
              ├── jMessageHandler
                 ├── JFileConsumer.class
                 ├── JMessageCode.class
                 ├── JMessageConsumer.class
                 ├── JMessageDelimiter.class
                 ├── JMessageFormatHandler.class
                 ├── JMessageSender.class
                 └── JMessageType.class
              └── jObjectParser
                  ├── JObjectParseException.class
                  └── JObjectParser.class
       ├── generated-sources
          └── annotations
       ├── generated-test-sources
          └── test-annotations
       └── test-classes
           └── jsc
               └── jConnection
                   └── JConnectionTest.class
├── JSERVER
   ├── JSERVER.iml
   ├── pom.xml
   ├── src
      ├── main
         ├── java
            └── jsc
                └── jServer
                    ├── JClientConnectionsHandler.java
                    ├── JConnectionHandler.java
                    ├── JRequestManager.java
                    ├── JResponseSender.java
                    ├── JServer.java
                    └── JSocketConsumer.java
         └── resources
      └── test
          └── java
              ├── EchoJRequestManagerImpl.java
              └── EchoServer.java
   └── target
       ├── classes
          └── jsc
              └── jServer
                  ├── JClientConnectionsHandler.class
                  ├── JConnectionHandler.class
                  ├── JRequestManager.class
                  ├── JResponseSender.class
                  ├── JServer$RequestHandlerNotFound.class
                  ├── JServer.class
                  └── JSocketConsumer.class
       ├── generated-sources
          └── annotations
       ├── generated-test-sources
          └── test-annotations
       └── test-classes
           ├── EchoJRequestManagerImpl.class
           └── EchoServer.class
└── libs
    ├── JConnection.jar
    └── JSERVER.jar

47 directories, 59 files

*click any of the above highlighted file to navigate to its source code