Ну вот смотри... Допустим тебе нужно переслать строку: Hello World.
Ты считаешь сколько символов в строке. Умножаешь это количество на то сколько места занимает 1 символ. (char занимает 1 байт).
И результат пересылаешь через сокет принимающей стороне.
А после этого шлёшь уже и саму строку.
Принимающая сторона теперь знает - "щас мне придёт 12 байт информации" и начинает принимать данные до тех пор пока не примет все 12 байт
Например если ты будешь запрашивать какуюнить вебстраничку тебе в ответ придёт чтонибудь такое
HTTP/1.x 200 OK
Cache-Control: private
Content-Type: text/html; charset=UTF-8
Content-Encoding: gzip
Server: gws
Content-Length: 2200
Date: Thu, 22 Nov 2007 18:07:06 GMT
и после этого сама страничка. Где поле Content-Length: 2200 покажет сколько эта страничка занимает места, т.е. какое количество информации программа которая её принимает должна принять.
Хоть и без рисунков но помоему подробней уже некуда
