Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.02.06;
Скачать: CL | DM;

Вниз

Общение между клиентом и сервером.   Найти похожие ветки 

 
Adrian_Copil_Minune   (2002-12-13 11:25) [0]

Привет.

Клиент посылает разные запросы к серверу Сечас это релизованно так:
есть структура
TCommBlock = packed record
Command: string[25];
Msg: string[100];
end;

клиент посылает эту структуру к серверу и он узнает имя команды и парсирует параметры из Msg.

Вопрос:
я хочю чтобы клиент посылал разные структуры с полями пораметрами для каждова запроса (так будет более отимизированно)
но не знаю как на сервере в Execute различать какая структура пришла ведь
ReadBuffer(CommBlock, SizeOf(CommBlock));
то есть ReadBuffer я могу делать только для одной структуры.
Думаю это можно релизовать но ничего не приходит в голову.

Нелп!


 
Adrian_Copil_Minune   (2002-12-13 12:23) [1]

Але народ, неужели никто ничего не скажет?


 
ole ©   (2002-12-14 11:14) [2]

используй заголовок, стандартный для всех команд.
Считывай сначала заголовок из буфера, в зависимости от указанной длины считывай остальное. также в заголовке можно указать тип команды и скажем CASE-ом разбирать дальше.


 
Digitman ©   (2002-12-14 11:20) [3]


> различать какая структура пришла


А если пол-структуры пришло ? Или сразу - полторы структуры ? ты эту ситуацию предусматриваешь ?


 
ole ©   (2002-12-14 11:45) [4]

Digitman
> А если пол-структуры пришло ? Или сразу - полторы структуры
> ? ты эту ситуацию предусматриваешь ?


организовать буфер приема и лепить пакетики друг к другу.
далее из БУФЕРА выбирать нужное.
при обработке, в случае недостаточной длины - отбрасывать или ждать добавки :)


 
Digitman ©   (2002-12-14 11:51) [5]

Это ты мне ? Это ты автору объясни)


 
ole ©   (2002-12-14 11:56) [6]

Digitman: Я, конечно, дико извиняюсь... :) но ЭТО как раз было автору.


 
Александр Спелицин ©   (2002-12-14 15:27) [7]

Кстати, а что именно вы используете для передачи данных между клиентом и сервером?


 
Polevi ©   (2002-12-15 09:55) [8]

Winsock2



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

Текущий архив: 2003.02.06;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.056 c
3-15405
ИгорьК
2003-01-21 14:07
2003.02.06
Вопрос по DevExpress QuantumGrid


7-15955
9999
2002-11-05 17:56
2003.02.06
Убить процесс при помощи Delphi


4-15993
vicheslav
2002-12-23 13:57
2003.02.06
Как вызвать извлечение сёмного устройства?


1-15629
Альф
2003-01-29 12:19
2003.02.06
Может тупой вопрос, извините если что


4-15987
Delchiv
2002-12-13 22:02
2003.02.06
Клик в неактивном окне