Дата и время публикации:
Дата и время публикации:
Протокол String Type Handle Protocol(STHP), далее по тексту протокол STHP, реализует некоторый обмен сообщениями, содержащие один из нескольких типов строк, передаваемых между процессами по клиент-серверной схеме, запущенных локально на одном компьютере (узле) и не требующие наличие интерфейса физического уровня типа Ethernet, как показано на рисунке 1.1.
Рисунок 1.1
Из которой следует, что доступ к локальной вычислительной сети не требуется, т.к. в данной реализации обмена между процессами используется клиент-серверная схема с использованием доменного протокола Unix, который ещё называют Unix Soket.
Процесс с числовым идентификатором PID 1204 реализует простой интефейс для ввода строки с консоли с поддержкой эхо-режима для отображения вводимых символов. Запускается как отдельная программа с единственным процессом функции main(), далее по тексту клиент.
Клиент, после того как пользователь ввел строку символов c нажатием клавиши Enter, формируется запрос ASC(s), где единственный аргумент s является передаваемой строкой символов. После чего, он входит в режим ожидания ответа от сервера.
На сервере, после создания соединения c клиентом, формируется клиентский процесс с PID 1205, принимающий строку и выясняющий тип строки DEC/CHARS/EMPTY, где DEC указывает, что данная строка содержит числовой тип, CHARS указывает, что эта символьная строка, EMPTY обозначает, что на сервер была отправлена пустая строка. Клиентский процесс c PID 1205 отправляет тип строки (v) и должен быть завершен после прочтения клиентом ответа REPLY(v), где v — ответ клиента DEC, CHARS или EMPTY.
Клиент, получив ответ и распечатав её на консоль закрывает соединение с сервером и возвращается в ожидание ввода символов с консоли. Все операции по отправки запроса, а так же получения клиентом ответа должны выводиться на консоль. При этом, так как сервер может быть запущен в другой виртуальной консоли, то не имеет смысла в этой демонстрационной версии запускать его в фоновом режиме.
Скриншоты приложений реализующих протокол STHP, показаны на рисунке 1.2
Рисунок 1.2
На которых показана реализация протокола STHP, состоящая из трех терминальных окон. В первых двух окнах, которые находятся наверху, запущена клиентская часть протокола, программа sthp_cli, а внизу серверная часть, программа sthp_serv. При этом оба клиента озадачивают сервер на предмет типа строки, а именно что она содержит — последовательность чисел в десятичном отсчете, набор символов(в т.ч. и числа) или она пустая. Затем он ждет ответа от сервера, который принимает строку, вычисляет её длину в байтах и конечно же тип. Затем отправляет этот тип клиенту в виде ответа.