Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Скорость передачи строк через TTcpServer - TTcpClient


kotyara ©   (2009-04-20 17:44:00) 

Нужно передать список переменных (набор строк в виде Name=Value) от сервера к клиенту (и наоборот) по каналу "TTcpServer - TTcpClient".
Собственно передачу данных я отладил хорошо и проблем со структурированными данными не возникает.
Проблема возникла только со скоростью передачи строк в любом виде, когда возникла необходимость передавать текст.

Ниже приведена выдержка из протокола обмена сервера с клиентами, где видно, что на передачу 33 строк общим объемом 2172 байт уходит аж 7 секунд!
Передаю строки "кусочками" (блоками) по 63 символа (как ShortString[63]). Пробовал и по 1 байту, и по 255 и по 128.... разницы практически нет!
Пробовал чередовать передачу блока данных с премом ответа от клиента (скажем эффективную длину только что полученного блока),
передавать блоки непрерывно - нечего не помогает.

18.04.2009 8:17:43 Соединение с компьютером "HOST" [IP-ADDR] закрыто. Время соединения: 00:00:08, всего принято 358 байт, отправлено 5796 байт. Средняя скорость обмена данными: 769,25 байт/сек.
18.04.2009 8:17:43 На компьютер "HOST" [IP-ADDR] передано 64 байт (1 пакет(ов)): список переменных файлового сервера.
18.04.2009 8:17:43 На компьютер "HOST" [IP-ADDR] передано 2172 байт (33 пакет(ов)): список переменных подразделения.
18.04.2009 8:17:35 Установлено соединение с компьютером "HOST" [IP-ADDR]. Всего активных соединений: 1.

Передаю те же самые данные, но записями по 289 байт
TVariable = record
 Name: string[32];
 Value: string[255];
end

Получается, что на каждую "строку" тратится больший объем трафика, причем в большинстве случаев как минимум половина - впустую!
Но скорость в восемь раз больше!!!!

18.04.2009 8:28:43 Соединение с компьютером "HOST" [IP-ADDR] закрыто. Время соединения: 00:00:01, всего принято 184 байт, отправлено 13386 байт. Средняя скорость обмена данными: 13 570,00 байт/сек.
18.04.2009 8:28:43 На компьютер "HOST" [IP-ADDR] передано 289 байт (1 пакет(ов)): список переменных файлового сервера.
18.04.2009 8:28:43 На компьютер "HOST" [IP-ADDR] передано 9537 байт (33 пакет(ов)): список переменных подразделения.
18.04.2009 8:28:42 Установлено соединение с компьютером "HOST" [IP-ADDR]. Всего активных соединений: 1.

Получается парадокс - на передачу меньшего объема данных (но строками) времени уходит больше!
Пробовал использовать "встроенные" функции для обмена строками TTcpClient - тот же результат.
Причем если расположить и сервер и клиент на одной станции, задержки нет. Можно сделать вывод,
что проблема именно в передаче строк, а не в их обработке на клиенте или сервере.

Не могу понять, в чем проблема?


Palladin   (2009-04-21 12:29:00) [1]


> Сергей М. ©   (20.04.09 21:31) [5]

это он же.


FireMan_Alexey   (2009-04-20 22:16:00) [2]


> Сергей М. ©   (20.04.09 21:31) [5]


Наверное тот, кто не знал, что за забором лежит :)


Сергей М.   (2009-04-20 21:31:00) [3]


> Rav   (20.04.09 20:24) [4]


А ты-то кто ?)


  (2009-04-20 20:24:00) [4]

Удалено модератором


Сергей М.   (2009-04-20 19:28:00) [5]


> На компьютер "HOST" [IP-ADDR] передано 289 байт (1 пакет(ов))


На заборе ХХХ написано, а за забором дрова лежат)


> Это что?


Ты уже погуглил, прежде чем чтокать ?


kotyara   (2009-04-20 18:06:00) [6]


> При TVariable = record размер записи никак не может быть
> равным 289 байт.

На компьютер "HOST" [IP-ADDR] передано 289 байт (1 пакет(ов))


> агоритм Нагеля

Это что?


Сергей М.   (2009-04-20 17:58:00) [7]


> записями по 289 байт


При TVariable = record размер записи никак не может быть равным 289 байт.


> в чем проблема?


Без приведенного кода навскидку могу предположить, что на стороне передатчика работает агоритм Нагеля.


Наверх

Титульная страница Поиск, карта сайта Написать письмо