Главная страница
    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.46 MB
Время: 0.01 c
4-16009
DDS
2002-12-23 09:35
2003.02.06
Как получить все URLs из всех открытых окон браузеров


4-16006
Delphi5.01
2002-12-21 18:57
2003.02.06
MainMenu s Font


7-15971
Yad
2002-11-24 16:56
2003.02.06
Музыка через системный динамик


14-15875
BigBadMutuh
2003-01-16 08:28
2003.02.06
Оцифровка Аудио CD под WinXP


3-15411
Step[B.M.]
2003-01-20 22:29
2003.02.06
Как передать данные в переменную FreeReport ?





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