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

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

Общение между клиентом и сервером. [D6, Win2k]


Adrian_Copil_Minune ©   (2002-12-13 11:25:00) 

Привет.

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

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

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

Нелп!


Polevi   (2002-12-15 09:55:00) [1]

Winsock2


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

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


ole   (2002-12-14 11:56:00) [3]

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


Digitman   (2002-12-14 11:51:00) [4]

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


ole   (2002-12-14 11:45:00) [5]

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


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


Digitman   (2002-12-14 11:20:00) [6]


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


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


ole   (2002-12-14 11:14:00) [7]

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


Adrian_Copil_Minune   (2002-12-13 12:23:00) [8]

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


Наверх

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