Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2013.03.22;
Скачать: [xml.tar.bz2];

Вниз

Событие окончания передачи по TCP в winsock   Найти похожие ветки 

 
prodex   (2012-05-04 19:00) [0]

Доброго времени суток, уважаемые мастера! Можно ли как-нибудь определить момент, когда в неблокирующем TCP-сокете (WSAEventSelect) закончилась передаче данных? Или как узнать, что буфер на передачу пуст? Заранее благодарен за ответ.


 
Anatoly Podgoretsky ©   (2012-05-04 19:37) [1]

Если нет длины, то только по таймаутую


 
prodex   (2012-05-04 19:42) [2]

Длины чего? Передаваемых данных или внутреннего буфера?


 
Сергей М. ©   (2012-05-05 15:03) [3]


> как узнать, что буфер на передачу пуст?


Зачем это нужно ?
Толкай на передачу данные пока не получишь отказ WSAEWOULDBLOCK - он означает что буфер заполнен. А когда он освободится (в т.ч. сразу после Connect он свободен), т.е. все данные из него будут вытолканы в сеть, Винсок тебя изdестит событием FD_WRITE.


 
prodex   (2012-05-05 16:42) [4]

Пакеты не большие, поэтому до WSAEWOULDBLOCK не доходит. Возможна ситуация, когда удаленный клиент замешкается или зависнет, надо отмерять время от полной передачи данных до начала ответа, если не ответил, то отключать его. Т.к. пакет может быть от 2 до 4096 байт по ОЧЕНЬ плохому GPRS, где скорость падает до 0,5 кбит/с, искомое время может колебаться в широких пределах. Вот такая вот ситуация.


 
Сергей М. ©   (2012-05-05 21:02) [5]


> если не ответил, то отключать его


Если он не ответил, то это совершенно не означает что он "замешкался" - просто канал дерьмовый.
Поэтому не страдай ерундой и "отмеряй время" с момента успешного возврата из Send()



Страницы: 1 вся ветка

Форум: "Начинающим";
Текущий архив: 2013.03.22;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.066 c
9-1194294204
Mr.Vlad
2007-11-05 23:23
2013.03.22
Сенсор


3-1281355338
defen
2010-08-09 16:02
2013.03.22
Добавление файла в базу


15-1340800374
картман
2012-06-27 16:32
2013.03.22
кто в гугл хочет?


15-1347621308
Фпа
2012-09-14 15:15
2013.03.22
программист


15-1338358473
Bluejohn
2012-05-30 10:14
2013.03.22
Найти быстро место в исходнике





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский