Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2013.03.22;
Скачать: CL | DM;

Вниз

Событие окончания передачи по 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;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.169 c
15-1336653449
AV
2012-05-10 16:37
2013.03.22
Нечеткое сравнение строк или что посоветуете?


15-1352383958
Artem
2012-11-08 18:12
2013.03.22
XP на VirtualBox e запускается со второго раза


15-1335731403
Юрий
2012-04-30 00:30
2013.03.22
С днем рождения ! 30 апреля 2012 понедельник


3-1277303472
VictorMBH
2010-06-23 18:31
2013.03.22
Какой инсталер нужен для инсталла BDE под 64 разрядной Windows 7


15-1350574326
ES
2012-10-18 19:32
2013.03.22
TImageList, ссылка с другой формы