Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Socket - множественная буферизация??? не понял, почему так работает 
V
    Опции темы
Kergan
Дата 4.1.2006, 11:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 159
Регистрация: 20.8.2005

Репутация: нет
Всего: 5



Пишу на шарпе клиентское приложение, есессно вставил сокет и таймер, чтобы читать с него инфу. Так вот ситуация такая: выставил на таймере задержку 5 сек (5000 мсек), получил за это время ТОЧНО БОЛЬШЕ ОДНОГО ПАКЕТА (под пакетом я понимаю flap-пакет, который мне шлет icq-сервер, а не tcp/ip пакет). Забил все это в byte массив кодом:
Код

if (Sock.Available > 0) {Sock.Recieve(btArr);}

Sock - это сокет. Так вот, он все обработал грамотно и каждый раз давал мне ровно по ОДНОМУ flap пакету! Хотя все пакеты уже пришли в его буффер (хз какой...). Всвязи с этим вопрос: где он хранит очередь пакетов (не в буффере же чтения, который он должен чистить после Recieve!)
--------------------
Была у меня дурацкая подпись...Я ее убрал, а новую еще не придумал. :(
PM MAIL ICQ   Вверх
mr.DUDA
Дата 4.1.2006, 11:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 110
Всего: 232



Может, размер массива btArr равен размеру одного flap-пакета? Тогда приниматься будет блок байтов не длиннее, чем размер принимающего буфера.


--------------------
user posted image
PM MAIL WWW   Вверх
Kergan
Дата 4.1.2006, 13:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 159
Регистрация: 20.8.2005

Репутация: нет
Всего: 5



во-первых размер массива взят с запасом, намного больше одного флапа
во-вторых при таком раскладе (один флап ровно в массив) буффер все равно очистится, я ведь использую первую перегрузку функци recieve, там влаг чтения None по умолчанию... Не могу понять smile

Это сообщение отредактировал(а) Kergan - 4.1.2006, 13:51
--------------------
Была у меня дурацкая подпись...Я ее убрал, а новую еще не придумал. :(
PM MAIL ICQ   Вверх
mr.DUDA
Дата 4.1.2006, 21:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 110
Всего: 232



Наверное, стоит поспрашивать в разделе по сетям... Лично мои познания в сокетах на этом ограничиваются, слишком мало дела я с ними имел... smile


--------------------
user posted image
PM MAIL WWW   Вверх
Kergan
Дата 10.1.2006, 18:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 159
Регистрация: 20.8.2005

Репутация: нет
Всего: 5



Нашел... ну, не документацию - ее, видимо, пока нет... в смысле для таких деталей... короче, буферизация там не множественная, но буффер чтения делится на множество частей, причем не по TCP пакетам, а по пакетам верхнего уровня (в случае с ICQ - FLAP-пакетам) если в АСКД битах TCP пакета содержится о них информация. Короче, класс Socket реализован на удивление качественно.
--------------------
Была у меня дурацкая подпись...Я ее убрал, а новую еще не придумал. :(
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.0712 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.