Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[3.145.59.187] |
|
Сообщ.
#1
,
|
|
|
Всё борюсь с организацией обмена данными клиент-сервера. Пробовал xml-не подходит. Проблема ТУТ. Подскажите, а возможно ли через IDHTTP + IDHTTPServer обмениваться своим типом данных, например таким:
TListGuest = record telephone:array of string; name:array of string; datereg:array of string; nick:array of string; end; Что бы такую запись отправить клиентом и принять и корректно обработать на сервере (преобразовать в такой-же тип данных) Может есть вариант сохранения record в stream? |
Сообщ.
#2
,
|
|
|
Копай по ключевому слову (де)сериализация. Вариантов уйма от своего собственного до JSON и Protobuf
|
Сообщ.
#3
,
|
|
|
Посмотрел на сериализацию, честно - не совсем понятно. Понял только что можно сохранять данные как бинарный текст (это по моему лучше всего подходит для отправки по http.
Если можно простой пример для такого типа данных как я указал в первом посте? чтобы это сохранить например как бинарный текст и затем обратно собрать в свой тип данных? |
Сообщ.
#4
,
|
|
|
TIdTCPClient и TIdTCPServer спасут отца русской демократии.
|
Сообщ.
#5
,
|
|
|
Цитата dreyqq @ Если можно простой пример для такого типа данных как я указал в первом посте? Самое тупенькое, данные вида типа TEL[12361982,211284912,12499824]|NAME[John,Patrick,Doe]|... Упаковку-распаковку соответственно. Но лучше юзать стандартные методы, JSON или Protobuf сделают для тебя всю работу, тебе останется только передать и принять. Также лучше разобраться с XML, скорее это косяк у тебя, нежели в стандартном коде, который без проблем бегает в тысячах программ. |
Сообщ.
#6
,
|
|
|
С XML проблема. Если использовать IXMLNode то оно память после себя не освобождает. После миллиона запросов вылетает в memoryOut. Задал вопрос здесь
Добавлено Цитата Gonarh @ TIdTCPClient и TIdTCPServer спасут отца русской демократии. Не пойдет. Нужно через http... |
Сообщ.
#7
,
|
|
|
Цитата JSON или Protobuf сделают для тебя всю работу Они тоже память кушают, хоть и аппетит в 2 раза меньше, зато скорость... 50000 запросов обрабатывает примерно 30 минут, тоже самое на xml примерно 10 минут, но памяти в 2 раза больше съедает |
Сообщ.
#8
,
|
|
|
Реализации разные есть, раз уж производительность критична. А просто пустой запрос сколько rpm дает?
|
Сообщ.
#9
,
|
|
|
Не мерял, только представляю о чем речь (наверное о времени запрос-ответ)
Тормозит именно при парсинге значений. Чем больше документ, тем медленнее. Такое впечатление что при поиске каждого значения выполняется copy, pos Добавлено В общем остановился на XSuperObject |