2009-08-06 6 views

Odpowiedz

15

"\ r \ n" nie jest to ogranicznik kawałek. Rozmiar porcji określa liczbę bajtów utworzonych przez dane tego porcji. Klient powinien następnie dokładnie odczytać "\ r \ n" osadzone w wiadomości.

+0

Ma sens, dzięki! –

+0

Stary temat, ale tutaj jest moja odpowiedź, w której podaję przykład RequestHeader + ChunkedBody + AfterHeader. Powinno to zilustrować działanie nowych linii. http://stackoverflow.com/a/16460234/185565 – Whome

5

Z założenia nie stanowi to żadnego problemu. Każda porcja określa rozmiar bajtu swojego bloku danych. Zawartość każdego bloku danych jest dowolna i musi zostać odebrana jako taka, więc może zawierać w niej podziały wierszy. Jeśli klient czyta poprawnie każdą porcję (odczytuje wiersz i analizuje jego rozmiar bajtowy, odczytuje określoną liczbę bajtów, a następnie odczytuje podział wiersza), nie ma znaczenia, czy w danych występują przerwy linii, ponieważ klient odczytuje dane w oparciu o rozmiar bajtów, a nie podziały wiersza.