www.boolean.name

www.boolean.name (http://forum.boolean.name/index.php)
-   2D-программирование (http://forum.boolean.name/forumdisplay.php?f=13)
-   -   проблема с TCP (http://forum.boolean.name/showthread.php?t=17440)

Spy4433 28.10.2012 13:06

проблема с TCP
 
вообщем проблема такова что слишком большое время чтения
порой достигает 800 млсек(почти секунда)
sizeBuf=ReadAvail(socket)
If sizeBuf<>0 Then
cm$=ReadLine(socket)
endif

проверяя sizeBuf он не больше 30 , т.е информации не много... вопрос.. может команда readline тормозная? readstring быстрее ?

moka 28.10.2012 22:55

Ответ: проблема с TCP
 
Не в скорости чтения дело. А в том как система отправляет данные.
Попробуй послать дофига сообщений очень быстро, первая часть их прийдёт почти сразу, а последние - снова с задержкой.
Суть заключается в том что система будет задерживать данные до тех пор, пока их не будет достаточно чтобы заполнить новый сегмент или не пройдёт таймаут (твой случай).
Это называется Nagle's Algorithm.
Как это дело отключить для блица - хз, ищи в гугле. Можно также это попробовать в реестре поискать как отключить - но я этого не рекомендую.
Если ты шлёш очень мелкие пакеты и редко - отключение ок. Если же мелкие пакеты и часто, то тебе нужно пересмотреть свой протокол данных, и возможно паковать их в большие пакеты, т.к. мелкие слишком нагружают сеть спамом и дополнительными хедерами для каждого пакета.


Часовой пояс GMT +1, время: 19:28.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
Перевод: zCarot