SkillAgentSearch skills...

JavaServerClientAPI

A robust, flexible, and generalized java server-client API (JSC) built on top of the java socket interface and raw TCP. JSC also supports event-driven architecture for communication.

Install / Use

/learn @pj-25/JavaServerClientAPI
About this skill

Quality Score

0/100

Supported Platforms

Zed

README

📨 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

View on GitHub
GitHub Stars4
CategoryCustomer
Updated4mo ago
Forks1

Languages

Java

Security Score

72/100

Audited on Nov 15, 2025

No findings