Телефон: 8-800-350-22-65
WhatsApp: 8-800-350-22-65
Telegram: sibac
Прием заявок круглосуточно
График работы офиса: с 9.00 до 18.00 Нск (5.00 - 14.00 Мск)

Статья опубликована в рамках: X Международной научно-практической конференции «Научное сообщество студентов: МЕЖДИСЦИПЛИНАРНЫЕ ИССЛЕДОВАНИЯ» (Россия, г. Новосибирск, 01 декабря 2016 г.)

Наука: Информационные технологии

Скачать книгу(-и): Сборник статей конференции

Библиографическое описание:
Зальцман Н.М., Журавлев В.С., Слободецкий А.В. СОЗДАНИЕ МНОГОПОТОЧНОГО BLUETOOTH СЕРВЕРА НА ОСНОВЕ БИБЛИОТЕКИ 32FEET.NET // Научное сообщество студентов: МЕЖДИСЦИПЛИНАРНЫЕ ИССЛЕДОВАНИЯ: сб. ст. по мат. X междунар. студ. науч.-практ. конф. № 7(10). URL: https://sibac.info/archive/meghdis/7(10).pdf (дата обращения: 26.11.2024)
Проголосовать за статью
Конференция завершена
Эта статья набрала 0 голосов
Дипломы участников
У данной статьи нет
дипломов

СОЗДАНИЕ МНОГОПОТОЧНОГО BLUETOOTH СЕРВЕРА НА ОСНОВЕ БИБЛИОТЕКИ 32FEET.NET

Зальцман Никита Матвеевич

студент, кафедра управления инновациями ТУСУР, г. Томск

Журавлев Валентин Сергеевич

студент, кафедра управления инновациями ТУСУР, г. Томск

Слободецкий Андрей Владимирович

студент, кафедра управления инновациями ТУСУР, г. Томск

Данная статья посвящена теме создания многопоточного bluetooth сервера используя библиотеку 32feet.NET. В одном из проектов стояла задача создания небольшого сервера для подключение множества мобильных устройств к компьютеру по каналу связи bluetooth, что позволило бы, передавать данные на все устройства одновременно, а так же получать данные с этих устройств.  В этой статье будет освещено какие инструменты понадобиться чтобы создать данный сервер.

Для написания сервера нам понадобится visual studio, т.к язык реализации С#, библиотека для работы с bluetooth соединениями 32feet.NET, а также android устройства с установленной программой «bluetooth chat» имеющую следующий интерфейс представленный на рисунке 1, которую можно найти на google play. [3, c. 4]

https://pp.vk.me/c626121/v626121308/3d575/XB3eKawdH3E.jpg

Рисунок 1. – Интерфейс «bluetooth chat»

 

После подключения библиотеки 32feet.NET к visual studio, создадим новый консольный проект (рис. 2):

Рисунок 2. – Пустой проект с ссылками на библиотеку

 

Используя библиотеку 32feet.NET можно легко создать сервер на подключение по bluetooth используя класс BluetoothListener в конструктор которого мы передаёт стандартный код UUID, который используется при создании подключения смартфона к компьютеру «00001101-0000-1000-8000-00805F9B34FB». [2, с. 623]

Рисунок 3. – Создание слушателя для сервера

 

В данный момент если запустить программу, то уже можно подключать android устройство, но никакого обмена данных не будет, т.к нет никакого обработчика со стороны сервера.

Создадим простой обработчик соединений (рис 4.)

Рисунок 4. – Обработчик подключений

 

Для того, чтобы передать клиента серверу, нужно изменить одну строчку в коде класса сервера (рис 5.)

Рисунок 5. – Связка клиента и сервера

 

Теперь можно запустить программу, при помощи приложения на смартфоне подключится к компьютеру по bluetooth и после подключения увидеть в чате слова «Hello World».

Перед тем, как сделать обработку различных сообщений поступающих у устройств, сделаем наш сервер многопоточным. Для этого есть два способа: сделать для каждого клиента свой поток или воспользоваться так называемым пулом потоков. В первом случае мы имеем дело с неограниченным количеством устройств, но сильно нагружающим машину сервер. Во втором случае нагрузка на сервер гораздо меньше, но создаются ограничения на количество клиентов работающих одновременно, т.е некоторые клиенты сначала помещаются в очередь, перед тем как сервер начнёт с ними работать. [1, c. 836]

В нашем проекте не требовалась поддержка большого количества устройств, поэтому был выбран второй вариант, который реализуется следующим образом, сначала напишем статичную функцию которая создает нового клиента (рис. 6)

Рисунок 6. – Создание клиента

 

Затем используем следующее выражение, которое после получения подключения от слушателя создает клиента в новом потоке (рис. 7)

Рисунок 7. – Создание пула потоков

 

После этих действий необходимо установить максимальное и минимальное количество потоков в функции main (рис. 8)

Рисунок 8. – Установление ограничения по потокам

 

Важно поставить минимальное количество потоков равным 2, в противном случае обработка первого клиента будет производится когда основной поток находится в режиме ожидания. [1, c. 839]

После того, как мы сделали сервер много поточным сделаем небольшую обработку сообщений поступающих от android устройств. Программа будет отвечать на вопросы клиентов (рис 9).

 

Рисунок 9. – Обработка сообщений от клиентов

 

Список литературы:

  1. Кроуз Д., Кит Р. Компьютерные сети: Нисходящий подход учеб. пособие. М.: Издательство «Э», 2016. – 912с.
  2. Описание библиотеки 32feet.NET [Электронный ресурс]. Режим доступа: https://32feet.codeplex.com/, свободный (дата обращения: 07.08.2016)
  3. Шилдт Г. C# Полное Руководство учеб. пособие. М.: ООО «И.Д. Вильямс», 2011. – 1056с.
Проголосовать за статью
Конференция завершена
Эта статья набрала 0 голосов
Дипломы участников
У данной статьи нет
дипломов

Оставить комментарий

Форма обратной связи о взаимодействии с сайтом
CAPTCHA
Этот вопрос задается для того, чтобы выяснить, являетесь ли Вы человеком или представляете из себя автоматическую спам-рассылку.