проблема с TCP
вообщем проблема такова что слишком большое время чтения
порой достигает 800 млсек(почти секунда) sizeBuf=ReadAvail(socket) If sizeBuf<>0 Then cm$=ReadLine(socket) endif проверяя sizeBuf он не больше 30 , т.е информации не много... вопрос.. может команда readline тормозная? readstring быстрее ? |
Ответ: проблема с TCP
Не в скорости чтения дело. А в том как система отправляет данные.
Попробуй послать дофига сообщений очень быстро, первая часть их прийдёт почти сразу, а последние - снова с задержкой. Суть заключается в том что система будет задерживать данные до тех пор, пока их не будет достаточно чтобы заполнить новый сегмент или не пройдёт таймаут (твой случай). Это называется Nagle's Algorithm. Как это дело отключить для блица - хз, ищи в гугле. Можно также это попробовать в реестре поискать как отключить - но я этого не рекомендую. Если ты шлёш очень мелкие пакеты и редко - отключение ок. Если же мелкие пакеты и часто, то тебе нужно пересмотреть свой протокол данных, и возможно паковать их в большие пакеты, т.к. мелкие слишком нагружают сеть спамом и дополнительными хедерами для каждого пакета. |
Часовой пояс GMT +4, время: 10:41. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot