Wie kann ich das senden von Daten in binärer form über einen Java-socket?
Ich habe gesehen, viele Beispiele von senden serialisierte Daten über sockets in Java, aber ich will zu senden einige einfache Integer und einen string. Und, das problem ist ich bin versuchen zu kommunizieren, diese auf ein binary in C geschrieben.
Also, bottom line: wie kann ich senden Sie einfach einige bytes über ein socket in Java?
Sind Sie sicher, dass das C-Programm und das Java-Programm zu behandeln, binären Ganzzahlen und strings die gleiche Weise? Wenn Sie nicht sind, schicken Sie als nur der alte text. Wenn Sie nicht die Kontrolle über das C-Programm Lesen Sie die Buchse, dann haben Sie keine Wahl aber, Daten zu senden, in welchem format auch immer es ist das C-Programm will.
InformationsquelleAutor evilpenguin | 2010-10-05
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich würde wirklich empfehlen, nicht mit dem Java-Sockets-Bibliothek direkt. Ich habe festgestellt, Netty (von JBoss) sehr einfach zu implementieren und sehr kraftvoll. Die Netty ChannelBuffer-Klasse kommt mit einer ganzen Reihe von Optionen für das schreiben unterschiedlicher Datentypen und natürlich auch die Möglichkeit, eigene Encoder und Decoder zu schreiben POJOs unten den stream, wenn Sie es wünschen.
Diese Seite ist ein wirklich gutes starter - ich war in der Lage, eine ziemlich anspruchsvolle client/server mit benutzerdefinierten Encodern und Decodern in unter 30 Minuten mit dem Lesen dieser: http://docs.jboss.org/netty/3.2/guide/html/start.html.
Wenn Sie wirklich wollen, auf Java-sockets. Die Buchse output-stream sein kann, verpackt in einen DataOutputStream, die Ihnen erlaubt zu schreiben, viele verschiedene Datentypen, wie zum Beispiel:
Ich hoffe, das ist nützlich.
Beachten Sie, dass der link zu diesem tutorial ist für den JBoss-version von Netty. , Der nicht mit der API von netty.io download, tutorial-links zu. netty.io/wiki/user-guide-for-4.x.html statt
InformationsquelleAutor alpian
Können Sie die einfache Ausgabestrom gegeben durch die Buchse.
Von dort aus können Sie schreiben bytes.
Wenn Sie möchten, können Sie auch Kapseln diesen stream in eine BufferedOutputStream haben einen Puffer.
InformationsquelleAutor Colin Hebert
Ich würde empfehlen, sich in Protocol Buffers für die Serialisierung und ZeroMQ für die Datenübertragung.
InformationsquelleAutor Joshua