Wie sende ich mehrere Dateien über eine einzige TCP-Verbindung in Java?
Verwenden Sie eine TCP-Verbindung, um mehrere Dateien zu senden
Warum dieser Blog? Ich habe kürzlich einige verwandte Dinge gelesen. Es ist kein Problem, Socket einfach zum Programmieren zu verwenden, aber dies legt nur einige grundlegende Konzepte fest. Gegen das eigentliche Problem lässt sich noch immer nichts unternehmen.
Wenn ich Dateien übertragen muss, stelle ich fest, dass ich scheinbar gerade die Daten gesendet habe (Binärdaten), aber einige Informationen über die Datei verloren gegangen sind (die Dateierweiterung). Und ich kann jedes Mal nur einen Socket verwenden, um eine Datei zu senden, und es gibt keine Möglichkeit, Dateien kontinuierlich zu senden (da ich darauf angewiesen bin, den Stream zu schließen, um das Senden von Dateien abzuschließen, was bedeutet, dass ich die Länge der Datei tatsächlich nicht kenne , also kann ich nur eine Socket-Verbindung verwenden, die eine Datei darstellt).
Diese Probleme haben mich schon lange beschäftigt, um eine einfache Suche durchzuführen, aber ich habe keine vorgefertigten Beispiele gefunden (vielleicht habe ich sie nicht gefunden). Definieren Sie das Protokoll selbst und senden Sie es. Das weckte mein Interesse und ich hatte das Gefühl, etwas verstanden zu haben, denn ich hatte gerade den Kurs „Computernetzwerk“ gelernt. Ehrlich gesagt habe ich nicht sehr gut gelernt, aber ich habe das Konzept von Computernetzwerken gelernt. Im Computernetzwerkkurs wurden viele Protokolle erwähnt, und ich hatte unbewusst das Konzept von Protokollen. Also habe ich eine Lösung gefunden:
Ich definiere selbst ein einfaches Protokoll auf der TCP-Ebene.Durch die Definition des Protokolls wird das Problem gelöst. Die Rolle des Protokolls
Senden Sie Daten von Host 1 an Host 2. Aus der Perspektive der Anwendungsschicht können sie nur die Anwendungsdaten sehen, aber wir können sie durch das Diagramm sehen. Die Daten beginnen bei Host 1. und jede Richtung Die nächste Datenschicht fügt einen Header hinzu und breitet sich dann im Netzwerk aus. Wenn sie Host 2 erreicht, wird ein Header für jede aufwärts gerichtete Schicht entfernt. Wenn sie die Anwendungsschicht erreicht, gibt es nur Daten. (Dies ist nur eine kurze Erklärung. Tatsächlich ist dies nicht streng genug, aber für ein einfaches Verständnis reicht es aus.)
Definieren Sie das Datensendeformat (Protokoll)
Das Sendeformat hier (ich denke, es ähnelt ein wenig dem Protokoll in Computernetzwerken, also nennen wir es ein einfaches Protokoll).
Sendeformat: Datenkopf + DatenkörperDatenkopf: Daten mit einer Länge von einem Byte, die den Dateityp angeben. Hinweis: Da der Typ jeder Datei unterschiedlich ist und auch die Länge unterschiedlich ist, wissen wir, dass der Header des Protokolls im Allgemeinen eine feste Länge hat (wir berücksichtigen keine mit variabler Länge), daher verwende ich eine Zuordnungsbeziehung Das heißt, eine Bytezahl repräsentiert den Typ einer Datei.
Nennen Sie ein Beispiel wie folgt:
Wert | |
txt | |
png | |
jpg | |
jpeg | |
avi |
Das obige ist der detaillierte Inhalt vonWie sende ich mehrere Dateien über eine einzige TCP-Verbindung in Java?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



Leitfaden zur perfekten Zahl in Java. Hier besprechen wir die Definition, Wie prüft man die perfekte Zahl in Java?, Beispiele mit Code-Implementierung.

Leitfaden zum Zufallszahlengenerator in Java. Hier besprechen wir Funktionen in Java anhand von Beispielen und zwei verschiedene Generatoren anhand ihrer Beispiele.

Leitfaden für Weka in Java. Hier besprechen wir die Einführung, die Verwendung von Weka Java, die Art der Plattform und die Vorteile anhand von Beispielen.

Leitfaden zur Smith-Zahl in Java. Hier besprechen wir die Definition: Wie überprüft man die Smith-Nummer in Java? Beispiel mit Code-Implementierung.

In diesem Artikel haben wir die am häufigsten gestellten Fragen zu Java Spring-Interviews mit ihren detaillierten Antworten zusammengestellt. Damit Sie das Interview knacken können.

Java 8 führt die Stream -API ein und bietet eine leistungsstarke und ausdrucksstarke Möglichkeit, Datensammlungen zu verarbeiten. Eine häufige Frage bei der Verwendung von Stream lautet jedoch: Wie kann man von einem Foreach -Betrieb brechen oder zurückkehren? Herkömmliche Schleifen ermöglichen eine frühzeitige Unterbrechung oder Rückkehr, aber die Stream's foreach -Methode unterstützt diese Methode nicht direkt. In diesem Artikel werden die Gründe erläutert und alternative Methoden zur Implementierung vorzeitiger Beendigung in Strahlverarbeitungssystemen erforscht. Weitere Lektüre: Java Stream API -Verbesserungen Stream foreach verstehen Die Foreach -Methode ist ein Terminalbetrieb, der einen Vorgang für jedes Element im Stream ausführt. Seine Designabsicht ist

Anleitung zum TimeStamp to Date in Java. Hier diskutieren wir auch die Einführung und wie man Zeitstempel in Java in ein Datum konvertiert, zusammen mit Beispielen.

Java ist eine beliebte Programmiersprache, die sowohl von Anfängern als auch von erfahrenen Entwicklern erlernt werden kann. Dieses Tutorial beginnt mit grundlegenden Konzepten und geht dann weiter zu fortgeschrittenen Themen. Nach der Installation des Java Development Kit können Sie das Programmieren üben, indem Sie ein einfaches „Hello, World!“-Programm erstellen. Nachdem Sie den Code verstanden haben, verwenden Sie die Eingabeaufforderung, um das Programm zu kompilieren und auszuführen. Auf der Konsole wird „Hello, World!“ ausgegeben. Mit dem Erlernen von Java beginnt Ihre Programmierreise, und wenn Sie Ihre Kenntnisse vertiefen, können Sie komplexere Anwendungen erstellen.
