[Communication Socket (Java)] Impressions de la mise en œuvre de la communication Socket dans la pratique pour la première fois

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.

1. Présentation de la communication par socket

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

2. Ordre des octets

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

2.1 Il y a 2 points.
2.2. Extrait de l'article

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());
    }
}

Recommended Posts

[Communication Socket (Java)] Impressions de la mise en œuvre de la communication Socket dans la pratique pour la première fois
Impressions et doutes sur l'utilisation de Java pour la première fois dans Android Studio
Introduction à Java pour la première fois # 2
Apprendre pour la première fois java [Introduction]
L'histoire de l'apprentissage de Java dans la première programmation
Ressentez le passage du temps même à Java
Première programmation de ma vie Java 1st Hello World
L'histoire de l'utilisation intentionnelle de Try catch pour la première fois de ma vie
Apprentissage pour la première fois des expressions et opérateurs Java # 3
Mémo d'apprentissage lors de l'apprentissage de Java pour la première fois (mémo d'apprentissage personnel)
Spring Boot pour la première fois
Résumé des points que les programmeurs Java trouvent glissants lorsqu'ils lisent la source Kotlin pour la première fois
Spring AOP pour la première fois
Obtenez le résultat de POST en Java
Communication TCP (communication socket) en Java (ASCII, Binaire)
Premiers pas pour l'apprentissage profond en Java
L'histoire de l'écriture de Java dans Emacs
L'histoire de la sortie de l'application Android sur le Play Store pour la première fois.
L'histoire de la comparaison de chaînes de bas niveau en Java
[Java] Gestion des Java Beans dans la chaîne de méthodes
À propos de l'idée des classes anonymes en Java
ChatWork4j pour l'utilisation de l'API ChatWork en Java
Mesurer la taille d'un dossier avec Java
Exemple de code source pour trouver le multiple commun minimum de plusieurs valeurs en Java
Murs touchés par le premier Rspec
Développement d'Android Studio pour la première fois (pour les débutants)
J'ai essayé de toucher Docker pour la première fois
Utilisez une bibliothèque Java externe pour le moment
La date et l'heure de java8 ont été mises à jour
L'histoire d'un super débutant participant pour la première fois au concours AtCoder (AtCoder Beginner Contest 140)
Importer des fichiers de la même hiérarchie en Java
Exécutez Dataflow, Java, Streaming pour le moment
[Deep Learning from scratch] en Java 1. Pour le moment, différenciation et différenciation partielle
Première touche de la classe Files (ou Java 8)
Activer / désactiver SNI en Java pour chaque communication
[Android studio / Java] Ce que vous ne comprenez pas lorsque vous le touchez pour la première fois
Obtenez l'URL de la destination de la redirection HTTP en Java
[Pour les débutants] DI ~ Les bases de DI et DI au printemps ~
[Pour les débutants] Comprendre rapidement les bases de Java 8 lambda
Remarque sur l'initialisation des champs dans le didacticiel Java
[Java] Récupère le fichier dans le fichier jar quel que soit l'environnement
Résumé de l'API de communication Java (1) Comment utiliser Socket
Modifier la qualité de stockage des images JPEG en Java
Examen des options de mise en œuvre d'applications natives (par écrit)
Récapitulez les éléments supplémentaires de la classe Optional dans Java 9
Comment étudier le kotlin pour la première fois ~ Partie 2 ~
Comment étudier le kotlin pour la première fois ~ Partie 1 ~
A été effectué dans l'année de base de la semaine calendaire Java
[Pour les débutants] Explication des classes, des instances et des statiques en Java
J'ai traduit [Méthode Clone pour les tableaux Java] comme méthode Clone dans les tableaux Java.
Une explication rapide des cinq types de statique Java
[Rails] J'ai essayé d'utiliser la méthode button_to pour la première fois
Implémentons la vérification de signature du code de courbe elliptique en Java
Définir le fuseau horaire de la JVM de votre application Azure
Comptez le nombre de chiffres après la virgule décimale en Java
Comment dériver le dernier jour du mois en Java
Réintroduction à Java for Humanities 0: Comprendre l'acte de programmation
BCrypt + Mesure du temps de traitement pour chaque nombre d'étirements en Java
Modéliser Digimon avec DDD pour la première fois Partie 1