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!");
}
}