Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Сети";
Текущий архив: 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
3-1103811818
}|{yk
2004-12-23 17:23
2005.01.30
Нормальная отладка триггеров


3-1103875805
AlexAndreev
2004-12-24 11:10
2005.01.30
Есть DbGrid и DbMemo


14-1105554455
}|{yk
2005-01-12 21:27
2005.01.30
Известный политолог защищает скандальный дуэт


1-1105640042
Серьезный Сэм
2005-01-13 21:14
2005.01.30
Исходный HTML-код в TWebBrowser


1-1105787139
speed
2005-01-15 14:05
2005.01.30
карта...





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский