Л/р 5 - Сокеты

На языке С/C++, не используя клиентские библиотеки, а работая напрямую с сокетными соединениями, связаться с сервером хранения/обработки данных и выполнить определенную простую последовательность команд (в зависимости от варианта). Сами команды и их результат отображать на экране.

Базовые варианты (номер варианта равен остатку от деления номера зачетки на 3, увеличенному на 1 ) — оценка 10 баллов:

  1. сервер Tokyo Tyrant
  2. сервер Memcached
  3. сервер Redis
Последовательность команд:
  1. прочитать значение по ключу "key" (должно отсутствовать)
  2. установить значение "тест" по ключу "key"
  3. прочитать значение по ключу "key"
  4. удалить значение по ключу "key"
  5. установить значение "test" по ключу "ключ 1"
  6. прочитать значение по ключу "ключ 1"

Продвинутые варианты - можно выбрать любой (оценка 20 баллов):

  1. сервер RabbitMQ
  2. сервер PostgreSQL
  3. сервер MySQL
  4. сервер MongoDB
  5. сервер Riak (через PBC API)

Последовательность команд:

  • Для серверов Apache ActiveMQ, RabbitMQ:
    1. из 1го процесса подписаться на канал "канал 1"
    2. из 2го процесса отправить сообщение "test" в канал "канал 1" (в 1ом процессе оно должно появиться)
    3. из 1го процесса отписаться от канала "канал 1"
    4. из 2го процесса отправить сообщение "тест" в канал "канал 1" (в 1ом процессе оно не должно появляться)
  • Для серверов PostgreSQL, MySQL:
    1. select * from test; (должно выдать ошибку, что таблица не существует)
    2. create table test (key varchar(10), value varchar (20));
    3. select * from test;
    4. insert into test (key,value) VALUES,(1,2);
    5. select vaue from test;
  • Для серверов MongoDB, Riak:
    1. прочитать значение по ключу "key" (должно отсутствовать)
    2. установить значение {"value": "тест"} по ключу "key"
    3. прочитать значение по ключу "key"
    4. удалить значение по ключу "key"
    5. установить значение {"value": "тест"} по ключу "ключ 1"
    6. прочитать значение по ключу "ключ 1"

Сроки сдачи: 30.11.2011

Also available in: HTML TXT