Senden von Daten aus Node.js zu Java über TCP
Ich versuche, Nachrichten zu senden (byte-arrays) von Node.js zu Java über TCP-socket (serialisiert mit protobuf).
Erstelle ich einen server-socket auf der java-Seite und verbinden von Knoten:
var client = net.createConnection(12345, "localhost")
client.addListener("connect", function(){
client.write(serializedMsg1)
client.end(serializedMsg2)
})
Auf der java-Seite bin ich das abrufen der Inhalte aus dem Eingabe-stream und Deserialisieren es:
Protocol1.parseFrom(inputStream);
Protocol2.parseFrom(inputStream);
Das problem ist Folgendes - sieht aus wie nur serializedMsg2
ist bestanden/deserialisiert, während serializedMsg1
ignoriert. So wie ich das verstehe, passiert es, weil das byte-stream ist nicht begrenzt, und die Größe des Daten-chunks sollten explizit angegeben werden. Daten sollten nicht gelesen werden, direkt aus dem stream auf der java-Seite - delimeted chunkds sollte zuerst gelesen werden, und deserialisiert werden als byte-arrays danach.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie
Buffer
um die Größe der Daten-chunk, Sie schreiben auf den stream:Auf der Java-Seite:
C#
readInt()? Das wäre sehr nett von Ihnen!