[Socket-Kommunikation (Java)] Eindrücke von der erstmaligen Implementierung der Socket-Kommunikation in der Praxis

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.

1. Übersicht über die Socket-Kommunikation

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

2. Bytereihenfolge

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

2.1 Es gibt 2 Punkte.
2.2 Auszug aus dem Artikel

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

[Socket-Kommunikation (Java)] Eindrücke von der erstmaligen Implementierung der Socket-Kommunikation in der Praxis
Eindrücke und Zweifel an der erstmaligen Verwendung von Java in Android Studio
Einführung in Java zum ersten Mal # 2
Zum ersten Mal Java lernen [Einführung]
Die Geschichte des Lernens von Java in der ersten Programmierung
Spüren Sie den Lauf der Zeit auch in Java
Erste Programmierung in meinem Leben Java 1st Hello World
Die Geschichte, absichtlich zum ersten Mal in meinem Leben Try Catch zu verwenden
Zum ersten Mal lernen Java # 3 Ausdrücke und Operatoren
Lernnotiz beim ersten Lernen von Java (persönliches Lernnotiz)
Spring Boot zum ersten Mal
Zusammenfassung der Punkte, die Java-Programmierer beim ersten Lesen der Kotlin-Quelle als rutschig empfinden
Spring AOP zum ersten Mal
Holen Sie sich das Ergebnis von POST in Java
TCP-Kommunikation (Socket-Kommunikation) in Java (ASCII, Binär)
Erste Schritte für tiefes Lernen in Java
Die Geschichte des Schreibens von Java in Emacs
Die Geschichte der ersten Veröffentlichung der Android-App im Play Store.
Die Geschichte des einfachen String-Vergleichs in Java
[Java] Behandlung von Java Beans in der Methodenkette
Über die Idee anonymer Klassen in Java
ChatWork4j für die Verwendung der ChatWork-API in Java
Messen Sie die Größe eines Ordners mit Java
Beispielquellcode zum Ermitteln des minimalen gemeinsamen Vielfachen mehrerer Werte in Java
Wände von der ersten Rspec getroffen
Android Studio-Entwicklung zum ersten Mal (für Anfänger)
Ich habe zum ersten Mal versucht, Docker zu berühren
Verwenden Sie vorerst eine externe Java-Bibliothek
Das Datum und die Uhrzeit von java8 wurden aktualisiert
Eine Geschichte über einen Super-Anfänger, der zum ersten Mal am AtCoder-Wettbewerb teilnimmt (AtCoder-Anfängerwettbewerb 140)
Importieren Sie Dateien derselben Hierarchie in Java
Führen Sie jetzt Dataflow, Java, Streaming aus
[Deep Learning von Grund auf neu] in Java 1. Zur Zeit Differenzierung und teilweise Differenzierung
Erster Touch der Files-Klasse (oder Java 8)
Aktivieren / Deaktivieren von SNI in Java für jede Kommunikation
[Android Studio / Java] Was Sie nicht verstehen, wenn Sie es zum ersten Mal berühren
Rufen Sie die URL des HTTP-Umleitungsziels in Java ab
[Für Anfänger] DI ~ Die Grundlagen von DI und DI im Frühjahr ~
[Für Anfänger] Verstehen Sie schnell die Grundlagen von Java 8 Lambda
Ein Hinweis zum Initialisieren von Feldern im Java-Lernprogramm
[Java] Holen Sie sich die Datei unabhängig von der Umgebung in das JAR
Zusammenfassung der Java-Kommunikations-API (1) Verwendung von Socket
Ändern Sie die Speicherqualität von JPEG-Bildern in Java
Prüfung von Optionen zur Implementierung nativer Apps (schriftlich)
Fassen Sie die zusätzlichen Elemente der optionalen Klasse in Java 9 zusammen
Wie man Kotlin zum ersten Mal studiert ~ Teil 2 ~
Wie man Kotlin zum ersten Mal studiert ~ Teil 1 ~
Wurde im Basisjahr der Java-Kalenderwoche durchgeführt
[Für Anfänger] Erläuterung von Klassen, Instanzen und Statik in Java
Ich habe [Klonmethode für Java-Arrays] als Klonmethode in Java-Arrays übersetzt.
Eine kurze Erklärung der fünf Arten von Java Static
[Rails] Ich habe zum ersten Mal versucht, die button_to-Methode zu verwenden
Lassen Sie uns die Signaturüberprüfung des Codes für elliptische Kurven in Java implementieren
Legen Sie die Zeitzone für die JVM Ihrer Azure-Anwendung fest
Zählen Sie die Anzahl der Stellen nach dem Dezimalpunkt in Java
So leiten Sie den letzten Tag des Monats in Java ab
Wiedereinführung in Java for Humanities 0: Den Akt der Programmierung verstehen
BCrypt + Verarbeitungszeitmessung für jede Streckenanzahl in Java
Erstmaliges Modellieren von Digimon mit DDD Teil 1