Da ich zum ersten Mal die Möglichkeit hatte, die Socket-Kommunikation in die Praxis umzusetzen, werde ich meine verwendeten Eindrücke und Techniken notieren. Als ich in der Vergangenheit alleine studiert habe, habe ich es nicht richtig verstanden, aber ich konnte es erleben, indem ich mir die Datenspezifikationen ansah und sie implementierte.
Es scheint, dass es zwei Typen gibt, Server-Socket und Client-Socket, aber diesmal habe ich nur den Client-Socket verwendet. Der Eindruck war, dass es eine Java Socket-API gab, aber am Ende war es ein Byte-Stream-Austausch. Die Datenspezifikation sagte auch etwas wie "Daten A: xxx bis 4 Bytes".
Ich habe auf die folgenden Artikel verwiesen. @ Hyman1993 Zusammenfassung der Java-Kommunikations-API (1) Verwendung von Socket @Gin Informationen zu Unterbrechungen und Unterbrechungen der TCP-Stream-Kommunikation
Das Designdokument enthielt eine Beschreibung, dass "Daten in Little Tondian gespeichert sind". Für mich, einen Anfänger der Socket-Kommunikation, war es ein Chaos.
Ich habe auf den Artikel von @mikanbako verwiesen. Die Bytereihenfolge muss zurückgesetzt werden, um ByteBuffer zu duplizieren
LittleEndianSample.java
import java.nio.ByteBuffer;
import java.nio.ByteOrder;
public class LittleEndianSample {
public static final void main(String[] args) {
ByteBuffer buffer = ByteBuffer.allocate(Short.BYTES);
//Kleine indische 16-Bit-Ganzzahl. Das niedrige Byte ist 0x11 und das hohe Byte ist 0x22.
buffer.order(ByteOrder.LITTLE_ENDIAN)
.put((byte) 0x11)
.put((byte) 0x22)
.rewind();
System.out.printf("0x%x\n", buffer.getShort());
}
}
Recommended Posts