Comme j'ai eu l'occasion de mettre en pratique la communication Socket pour la première fois, je noterai mes impressions et les techniques utilisées. Lorsque j'étudiais par moi-même dans le passé, je n'avais pas bien compris, mais j'ai pu en faire l'expérience en examinant les spécifications des données et en les implémentant.
Il semble qu'il existe deux types, le socket serveur et le socket client, mais cette fois, je n'ai utilisé que le socket client. L'impression était qu'il y avait une API Java Socket, mais à la fin, c'était un échange de flux d'octets. La spécification de données indiquait également quelque chose comme "Données A: xxx à 4 octets".
J'ai évoqué les articles suivants. @ Hyman1993 Résumé de l'API de communication Java (1) Comment utiliser Socket @Gin À propos des interruptions et des interruptions dans la communication de flux TCP
Il y avait une déclaration dans le document de conception que "les données sont stockées en petit tondien". Pour moi, qui suis un débutant en communication Socket, c'était un gâchis.
J'ai fait référence à l'article de @mikanbako. L'ordre des octets doit être réinitialisé pour dupliquer ByteBuffer
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);
//Petit entier indien 16 bits. L'octet de poids faible est 0x11 et l'octet de poids fort est 0x22.
buffer.order(ByteOrder.LITTLE_ENDIAN)
.put((byte) 0x11)
.put((byte) 0x22)
.rewind();
System.out.printf("0x%x\n", buffer.getShort());
}
}