Рассмотрение архитектуры низкоуровневых сокетов



Сокет — это тип сетевого подключения, устанавливаемого между двумя компьютерными процессами. Как правило, процессы выполняются на двух разных компьютерах, подключенных к IP-сети. Однако подключенные процессы могут выполняться на одном компьютере при использовании IP-адреса «локального хоста».

Сокеты были разработаны для операционных систем UNIX в университете Калифорнии который находится в Беркли. В UNIX обеспечивающий связь метод ввода-вывода следует алгоритму open/read/write/close. Перед использованием ресурса, его необходимо открыть, задав соответствующие разрешения. Как только ресурс открыт, из него можно считывать или в него записывать данные, согласно соответствующим разрешениям. После использования сокета пользователь должен вызывать определенный метод, для того чтобы подать сигнал ОС о завершении его работы с этим ресурсом.

Когда в операционную систему UNIX были добавлены средства взаимодействия процессоров (Inter-Process Communication, IPC) и межсетевого обмена, был заимствован привычный алгоритм ввода-вывода. Все ресурсы, открытые для связи, в операционных системах UNIX и Windows идентифицируются дескрипторами. Они указывают на файл, память или какой-либо другой канал связи, и указывают на внутреннюю структуру данных, используемую операционной системой. Сокет тоже представляется дескриптором. Следовательно, для сокетов жизнь дескриптора можно разделить на три фазы: открыть (создать) сокет, получить данны из сокета или отправить сокету определенные данные, и в конце концов закрыть сокет.

Протокол IPC для межпроцессорного взаимодействия построен поверх функций ввода-вывода. Они облегчают для сокетов отправку и получение данных. Каждый объект идентифицируется адресом сокета, следовательно, этот адрес можно указать в клиенте, чтобы установить соединение с целью.

Так же для соеденения с удаленным ПК в сети необходимо указать к какому процессу необходимо обратиться. Для этого используются порты. Порт определен, чтобы разрешить задачу одновременного взаимодействия с несколькими приложениями. Порт расширяет понятие IP-адреса. Компьютер, на котором в одно время выполняется несколько приложений, получая пакет, может идентифицировать процесс, пользуясь специальный номером порта, определенным при установлении соединения.

Сокет состоит из IP-адреса машины и номера порта, используемого приложением TCP. Поскольку IP-адрес уникален в Интернете, а номера портов уникальны на отдельной машине, номера сокетов также уникальны во всем Интернете. Эта характеристика позволяет процессу общаться через сеть с другим процессом исключительно на основании номера сокета.

Обычно приложение клиент-сервер, использующее сокеты, состоит из двух разных приложений - клиента, инициирующего соединение с целью (сервером), и сервера, ожидающего соединения от клиента.

Например, на стороне клиента, приложение должно знать адрес реального ПК и номер порта для подключения. Отправляя запрос на соединение, клиент пытается установить соединение с сервером.

 


Алгоритмическое конструирование

Для разработки программного средства были разработаны следующие алгоритмы:

· алгоритм подключения Androidустройства к компьютеру;

· алгоритм отправки команд на ПК с Androidустройства;

· алгоритм обработки команд присланных с подключенного Androidустройства.

Алгоритм подключения Android устройства к компьютеру

Для подключения Androidустройства к компьютеру используется низкоуровневые сокеты. Алгоритм выглядит следующим образом:

· определить IP адрес удаленного компьютера;

· определить порт для подключения к удаленному компьютеру;

· выполнить попытку подключения;

· в случаи успеха записать данный Socketв качестве клиента, в случаи ошибки вывести сообщение об ошибке.

Блок-схема подключения Androidустройства к компьютеру представлена на рисунке 2.1.1:

Рисунок 2.1.1 – «Блок-схема алгоритма подключения Androidустройства к компьютеру»


Дата добавления: 2018-04-04; просмотров: 161;