Chrome~,
Не исключено, что все блоки будут одинакового размера. Или же наоборот: сервер будет отправлять блоки разного размера. (по 1024 байт, 2048 и т. д.)
0D 0A - идентификационная последовательность байт, который сведетельствует об окончании передачи. Только не нужно забывать про тайм-аут, а то до конца дней будешь эту связку байт ждать :-D
Не исключено, что все блоки будут одинакового размера
Ну дык, надо организовать буфер, иначе отдельный поток на работу, через winsock, например. Он будет штундировать, пока не нарвётся на тайм-аут, например. Или не получит 0D 0A, или не упрётся носом в content-length. В потоке организовываешь саму работу с сокетом, а в классе реализации сокета уже всякими штуками промышляешь.
Может скинуть самую успешную, на мой взгляд, реализацию этих дел?
Собсно - вот: http://www.ararat.cz/synapse/
Лучше - не видал! И посмотреть в сорцах можно всё, что требуется)