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

Вниз

Скорость передачи строк через TTcpServer - TTcpClient   Найти похожие ветки 

 
kotyara   (2009-04-20 17:44) [0]

Нужно передать список переменных (набор строк в виде 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 - тот же результат.
Причем если расположить и сервер и клиент на одной станции, задержки нет. Можно сделать вывод,
что проблема именно в передаче строк, а не в их обработке на клиенте или сервере.

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


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


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


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


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


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


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


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

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


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

Это что?


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


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


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


> Это что?


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


 
имя   (2009-04-20 20:24) [4]

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


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


> Rav   (20.04.09 20:24) [4]


А ты-то кто ?)


 
FireMan_Alexey ©   (2009-04-20 22:16) [6]


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


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


 
Palladin ©   (2009-04-21 12:29) [7]


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

это он же.



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

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

Наверх





Память: 0.47 MB
Время: 0.002 c
2-1303805704
mefodiy
2011-04-26 12:15
2011.07.31
Как сделать reset MemTable


2-1303709793
prodex
2011-04-25 09:36
2011.07.31
Обращение к БД InterBase из разных потоков


2-1303502928
istok
2011-04-23 00:08
2011.07.31
EndOfTheDay...


15-1302553798
Юрий
2011-04-12 00:29
2011.07.31
С днем рождения ! 12 апреля 2011 вторник


15-1300890864
Kerk
2011-03-23 17:34
2011.07.31
Посоветуйте eInk -читалку





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