Форум: "Сети";
Текущий архив: 2005.01.30;
Скачать: [xml.tar.bz2];
ВнизО Socket.ReceiveLength Найти похожие ветки
← →
Alek_1 (2004-11-10 21:17) [0]Вот тут у меня возник вопрос, можно ли както узнать сколько байт выслал мне клиент?
Вот например делаю так
Socket.SendText("какаято пурга в 300 килобайт");
Естественно что сервер получать их будет постепенно, так вот можно ли в таком случае узнать серверу сколько байт отправил клиент если клиент перед отправкой сам несказал размер?
И что показывает Socket.ReceiveLength? то что в данный момент ко мне пришло или то размер отосланого клиентом пакета?
Я хочу неполные пакеты сбрасывать в буфер, до полного их прихода.
Что можете посоветовать?
← →
Verg © (2004-11-10 23:25) [1]
> так вот можно ли в таком случае узнать серверу сколько байт
> отправил клиент если клиент перед отправкой сам несказал
> размер?
Тогда он должен обозначить конец передаваемых данных некоторой, комбинацией, которой не может встретиться в самих данных.
> И что показывает Socket.ReceiveLength?
Это некоторое число, пропорциональное кол-ву принятых сокетом данных из потока на данный момент времени. Принятых, а не переданных "собеседником".
Коэффициент же этой пропорциональности больше единицы.
ReceiveLength для TCP сокетов используется лишь для оценки объема принятых данных.
← →
Alek © (2004-11-11 12:14) [2]Я делаю небольшой веб сервер и мне нужно знать пришел весь пакет или нет!
Вот например при обычных запросах все нормально они приходят сразу, а вот если например идет закачка какогото файла, то естественно посылка разбивается на несколько пакетов).
Вот если кто работал с заголовками ХТТП подскажите как узнать пришел весь пакет или нет, я конечно считаю Контент-Ленгт и все работало, пока не начал заходить на сайт через прокси сервер.
Может у кого уже есть готовый обработчик ХТТП запросов?
← →
Alek © (2004-11-11 12:28) [3]Конечно я читал РФК и знаю что загловок от даннх отделяет пустая строка и потом можно вычислить ее контент-легт, но например Прокси через который зашел я WinRoute после первой строки в методе ПОСТ вставляет пустую строку, да и в методе ГЕТ тоже.
Вот как бороться с разными проксями?
← →
Digitman © (2004-11-11 12:39) [4]
> Вот например при обычных запросах все нормально они приходят
> сразу
не факт.
и что, кстати, есть "обычный запрос" ? надо понимать, есть "необычные" ? "чудесно-волшебные" ?
что есть "сразу" ? в случае с поточными протоколами нет и не может быть повода утверждать, что "нечто" происходит "сразу".
> если например идет закачка какогото файла, то естественно
> посылка разбивается на несколько пакетов
еще раз : касаемо поточного протокола нет никакой разницы, "закачка" там творится или "откачка", "обычный запрос" или "волшебный запрос".
> пришел весь пакет или нет
и еще раз : НЕТ понятия "пакет" на уровне поточно-ориентированного прикладного протокола.
это означает, что "какаято пурга в 300 килобайт" НЕ является целостным пакетом с т.з. принимающей "пургу" стороны
когда речь идет о потоке, АБСОЛЮТНО неважно, что из себя представляет изнутри эта "пурга", принимающей стороне гораздо важней собрать воедино все ожидаемые 300 кб "пурги", принятой, может, и за один прием, а , может, и за триста приемов, прежде чем принимать дальнейшие решения по обработке этой "пурги"
← →
Alek © (2004-11-11 12:52) [5]
> гораздо важней собрать воедино все ожидаемые 300 кб "пурги",
> принятой, может, и за один прием, а , может, и за триста
> приемов, прежде чем принимать дальнейшие решения по обработке
> этой "пурги"
так вот как собрать все (ХТТП заголовок и эти 300 кб пурги или сколько тама придет) воедино для того чтобы потом обработать?
Для особо придирчивых к словам объясню.
"обычный запрос" - ГЕТ или ПОСТ запрос без параметров или такой запрос который приходит за один раз.
"сразу" - я не утверждаю что это произошло сразу, может была задержка мне не известно, я имею ввиду получил то что мне отсылают за один раз.
"пакет" - то что поступило ко мне в сокет в даннй момент
Это были небольшие пояснения к выше написаному мной тексту.
Еще что пояснить? ))
← →
Digitman © (2004-11-11 13:07) [6]
> Alek © (11.11.04 12:52) [5]
про 7-уровневую модель OSI xnj-yb,elm cksifk &
разницу между прикладным и транспортным протоколами инф.обмена понимаешь ?
← →
Alek © (2004-11-11 13:18) [7]нет, но если даш линк почитаю
← →
Digitman © (2004-11-11 13:30) [8]что, так трудно набрать "OSI" в любой поиск.системе ?
← →
Verg © (2004-11-11 13:46) [9]
> так вот как собрать все (ХТТП заголовок и эти 300 кб пурги
> или сколько тама придет)
Либо в заголовке, в Content-Length размер, либо все, что до разрыва соединения.
Страницы: 1 вся ветка
Форум: "Сети";
Текущий архив: 2005.01.30;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.04 c