Skip to content

Marquez77/SocketCommunicationAPI

Repository files navigation

SocketCommunicationAPI

How to SETUP

Maven

<repositories>
    <repository>
        <id>jitpack.io</id>
        <url>https://jitpack.io</url>
    </repository>
</repositories>

<dependencies>
    <dependency>
        <groupId>com.github.Marquez77</groupId>
        <artifactId>SocketCommunicationAPI</artifactId>
        <version>master</version>
    </dependency>
</dependencies>

UDP Communication

public class ServerA {
    public static void main(String[] args) {
        //Default values
        int server_port = 1234;
        Logger logger = LoggerFactory.getLogger("UDP-Server");
        
        //Create the udp server instance.
        UDPEchoServer server = new UDPEchoServer(server_port, logger);
        
        //Handling the receive messages.
        server.registerHandler((client, send, response) -> {
            //Get the message from UDPEchoSend instance.
            String first = send.nextString();
            int second = send.nextInt();
            logger.info("Received message: {}, {}", first, second);
            
            //Response the message to sender.
            response.append("Pong!");
            response.append(100);
        });
        
        //Start udp server.
        server.start();
    }
}

public class ServerB {
    public static void main(String[] args) {
        //Default values
        int server_port = 1235;
        Logger logger = LoggerFactory.getLogger("UDP-Server");

        //Create the udp server instance.
        UDPEchoServer server = new UDPEchoServer(server_port, logger);

        //Start udp server.
        server.start();
        
        //Send message to server A.
        
        //Make instance of sending packet.
        SocketAddress address = new InetSocketAddress("localhost", 1234);
        UDPEchoSend send = new UDPEchoSend();
        send.append("Ping!");
        send.append(10);
        
        //Send the message to server A.
        server.sendDataAndReceive(address, send).whenComplete((response, throwable) -> {
            if(throwable != null) {
                throwable.printStackTrace();
                return;
            }
            //Get the message from UDPEchoResponse instance.
            String first = response.nextString();
            int second = response.nextInt();
            logger.info("Response message: {}, {}", first, second);
        });
        
        //If you want just sending message:
        server.sendData(address, send).whenComplete((unused, throwable) -> {
            if(throwable != null) {
                throwable.printStackTrace();
                return;
            }
            logger.info("Send message success!");
        });
    }
}

About

각종 소켓 통신을 쉽게 구현할 수 있도록 제작된 통신 API 입니다.

Topics

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages