Skip to content

Jnng

JVM languages wrapper using JNI for nng.

Example

build.gradle file:

plugins {
    id 'java'
}

group 'com.my'
version '1.0-SNAPSHOT'

sourceCompatibility = 1.8

repositories {
    mavenCentral()
    maven {
        url "https://oss.sonatype.org/content/repositories/snapshots"
    }
}

dependencies {
    compile group: 'com.wooruang', name: 'jnng', version: '0.1-SNAPSHOT'
    testCompile group: 'junit', name: 'junit', version: '4.12'
}

Source code:

import com.wooruang.jnng.JNNG;
import com.wooruang.jnng.Message;
import com.wooruang.jnng.ServerSocket;
import com.wooruang.jnng.Socket;
import com.wooruang.jnng.jni.NNG;

public class Main {

    public static final int BUFFER_SIZE = 2048;

    public static void main(String [] args)
    {
        JNNG.initialize();

        ServerSocket server = new ServerSocket();
        int code1 = server.openAsProtocol(Socket.Protocol.Rep0);
        System.out.format("Open: %d\n", code1);

        int code2 = server.listen("tcp://0.0.0.0:30000");
        System.out.format("Listen result: %d\n", code2);

        int set_result = server.setOptionAsSize(NNG.NNGOptions.NNG_OPT_RECVMAXSZ, 2048);
        System.out.format("set NNG_OPT_RECVMAXSZ result: %d\n", set_result);

        while (true) {
            Message recv_msg = new Message(BUFFER_SIZE);
            int code3 = server.recv(recv_msg);
            System.out.format("Recv result: %d\n", code3);
            if (code3 != 0) {
                break;
            }

            String recv_string = recv_msg.getString();
            System.out.format("Recv string: %s\n", recv_string);

            Message send_msg = new Message(BUFFER_SIZE);
            send_msg.setString(recv_string);
            int code4 = server.send(send_msg);
            System.out.format("Send result: %d\n", code4);
            if (code4 != 0) {
                break;
            }
        }

        int code5 = server.close();
        System.out.format("Close: %d\n", code5);

        System.out.println("Hello, World!");
    }
}

Favorite site