2010-04-03 3 views
2

Вот насколько я понимаю:Базовый клиент-сервер для постоянных соединений?

  1. Клиент подключения делают & сервер

  2. Клиент отправляет данные сервера

  3. сервер интерпретирует данные, посылаемые клиентские данные

  4. Так на , и т. д., пока клиент не отправит сигнал разъединения.

Мне просто интересно об осуществлении. Шаг 2 и 3 меня смущают, может быть, я слишком усложняю это. Есть ли смысл интерпретировать данные, чем заявление гигантского переключателя?

Любые хорошие книги по дизайну клиента/сервера? В частности, речь идет о многопоточных серверах, масштабируемости и дизайне сообщений (байт 1 = информация заголовка, байт 2 = бла-бла и т. Д.)? Специально ориентирован на C++.

+0

Почему соединение должно быть постоянным? – 2010-04-03 19:29:09

ответ

1

Я бы подумал о пакетах, типах пакетов, идентификаторах пакетов и хранилищах обработчиков типов пакетов.

Идея состоит в том, чтобы отправлять только данные в виде пакетов. Каждый пакет содержит свой идентификатор (необязательно) и тип в начале (длина тоже была бы полезна) у вас есть группа обработчиков пакетов с каждой стороны соединения, каждый обработчик управляет пакетами соответствующего типа (читает и интерпретирует). Если вы отправляете длину пакета, вы можете даже пропускать поддерживаемые типы пакетов, допускающие разные клиентские и серверные версии.

Смежные вопросы