wichtig Socketverbindung gesendete Bytes != empfangener

Hallo Streaming-Freunde,

Zu der Antwort von Anime-Otaku :
Normalerweise flusht man nur vorm schliesen des Streams....
Speziell an der stelle kann man sich das flushen eigentlich sparen,
da vor dem Verbindungsabbau eh automatisch geflusht wird.

Man flusht immer dann wenn man den Stream offen lassen möchte
für späteren Datenverkehr, aber sicher gehen will das alle zuvor
gesendeten Daten auch wirklich auf den weg geschickt werden.

Die Daten liegen sonst evtl. ewig im Sende-Buffer und das ist schlecht
wenn man z.B. auf eine Antwort auf diese Daten wartet. Dead-Lock ! !

Das mit der for-Schleife ist so ne Code-Stil-Frage !
Wenn ich persönlich eine nicht konstante Schrittweite in einer for-Schleife
nutzen muß, dann nur wenn diese von außerhalb der Schleife variiert wird.
Nicht vom inneren auf die Schleife einwirken. Dann nehme ich lieber while oder
do while ! Kann man aber sehen wie man möchte !

Das mit dem EOF war nur der Vollständigkeit halber, ist ja die einzige möglichkeit
das read ohne Daten zurückkehrt (ohne Timeout) ! Das EOF in deinem Fall nicht auftritt
habe ich mir fast gedacht !

Aber du nutzt den Timeout sagst du ? Kannst du näheres dazu sagen

Gruß JAdix
 
Nein nicht das ich es nutze sondern das er auftritt wenn zu wenig bytes ankommen klar weil er dann in der schleife hängt und wartet aber es kommt nix mehr.

und wie gesagt wenn es zu viel ist was auch vorkommt kann ich damit nichts mehr anfangen.

Ich suche also eine Mögleichkeit ohne noch mein Protokoll zu ändern das mir genau die Bytezahl korrekt liefert die ich losgesendet habe
 
Hallo,

mit "Timeout nutzen" meinte ich das er nicht auf 0 (beliebig lang auf daten warten) steht !
Sondern auf X millis.

Du machst es dir in der getFile-Methode einfach in dem du alle Exceptions nach außen
weiter reichst, wie behandelst du diese dann weiter wenn sie auftretten ?

Kann es sein, wenn mal ein IP-Paket sagen wir mal etwas unpünktlich kommt,
dass dann dein getFile zu schnell aufgibt Folglich in deinem Protokoll zu wenig Daten ankommen und dann die fehlenden Daten in deinem nächsten 4k block liegen ?

Kannst du dein Protokoll nochmal etwas beschreiben ?

Gruß JAdix
 

Neue Beiträge

Zurück