2017-03-21 5 views
0

Ich lese Dokumentation über Using TCP und versuchen zu verstehen, wie einfach TCP Daten vom Server empfängt. Lassen Sie uns den Server Datenstrom an jeden angeschlossenen Client senden.Akka IO TCP empfangen Daten

case Received(data) => // do some with data, where data: ByteString 

Also, was ist data. Wie groß sind die Daten in Bytes? Ich meine, Kunden erhalten ständig Daten. Wie viele Bytes enthält jede solche data? Wo ist es konfiguriert?

Antwort

2

Es ist beliebig und nirgends konfiguriert. Sie bekommen, was Sie nicht schon bekommen haben, dass die Implementierung Ihnen zu der Zeit geben musste, die es entschied, Ihnen einige Daten zu geben.

Eine typische Art und Weise, eine solche Benachrichtigung zu handhaben ist wie folgt:

  1. Wenn wir von der letzten Mitteilung alle gespeicherten Daten hatte, die neuen Daten an das Ende der gespeicherten Daten anhängen.

  2. Wenn keine vollständige Nachricht gemäß dem von uns implementierten Protokoll vorhanden ist, speichern Sie alle verbleibenden Daten für die nächste Benachrichtigung, aktivieren Sie die Benachrichtigungen erneut und stoppen Sie.

  3. Verarbeiten Sie die Nachricht.

  4. Wenn wir keine übrig gebliebenen Daten haben (das heißt, wir hatten genau eine Anwendungsnachricht und kein Byte mehr), beachten Sie, dass der Puffer leer ist, Benachrichtigungen erneut aktivieren und stoppen.

  5. Mit Schritt 2 mit den restlichen Daten fortfahren.

Verwandte Themen