Я использую стандартный пример, приведенный в следующем коде, но Java-приложение возвращает следующую ошибку:
[//NetStreamDecoder | NetStreamReceiver: Don't know this command: 0]
Я собираю пример Java с:
javac -cp lib/gs-core-1.2.jar:. ExampleReceiver.java
в то время как отправитель C ++ предоставляется https://github.com/graphstream/gs-netstream. Как я могу увидеть обновление в приложении Java? Заранее спасибо.
Example.java
import java.io.IOException;
import java.net.UnknownHostException;
import org.graphstream.graph.Graph;
import org.graphstream.graph.implementations.MultiGraph;
import org.graphstream.stream.netstream.packing.Base64Unpacker;
import org.graphstream.stream.netstream.NetStreamReceiver;
import org.graphstream.stream.thread.ThreadProxyPipe;
public class ExampleReceiver {
public static void main(String[] args) throws UnknownHostException, IOException, InterruptedException {
Graph g = new MultiGraph("G",false,true);
g.display();
NetStreamReceiver net = new NetStreamReceiver(2001);
ThreadProxyPipe pipe = net.getDefaultStream();
pipe.addSink(g);
while (true) {
pipe.pump();
Thread.sleep(100);
}
}
}
гс-NetStream / CPP / SRC / NetStream-main.cpp
void events_test(){
string source_id="C++_netstream_test";
long time_id=0L;
NetStreamSender stream("localhost", 2001);
stream.addNode(source_id, time_id++, "node0");
stream.addEdge(source_id, time_id++, "edge", "node0", "node1", true);
stream.addNodeAttribute(source_id, time_id++, "node0","nodeAttribute", 0);
stream.changeNodeAttribute(source_id, time_id++, "node0","nodeAttribute",0, 1);
stream.removeNodeAttribute(source_id, time_id++, "node0","nodeAttribute");
stream.addEdgeAttribute(source_id, time_id++, "edge","edgeAttribute", 0);
stream.changeEdgeAttribute(source_id, time_id++, "edge","edgeAttribute", 0,1);
stream.removeEdgeAttribute(source_id, time_id++, "edge","edgeAttribute");
stream.addGraphAttribute(source_id, time_id++, "graphAttribute", 0);
stream.changeGraphAttribute(source_id, time_id++, "graphAttribute", 0, 1);
stream.removeGraphAttribute(source_id, time_id++, "graphAttribute");
stream.stepBegins(source_id, time_id++, 1.1);
stream.removeEdge(source_id, time_id++, "edge");
stream.removeNode(source_id, time_id++, "node0");
stream.graphClear(source_id, time_id++);
}
Версия NetStream для C ++ и python не синхронизирована с реализацией в gs-core версии 1.2. Мы должны обновить реализации C ++ и python.
В то же время вы можете использовать более старую версию gs-core. Я предлагаю проверить версию a3f70d2 из репозитория github.
Других решений пока нет …