Поделиться через


Bluetooth и подключение

Bluetooth использует функцию подключения для подключения к целевому устройству Bluetooth с помощью ранее созданного сокета Bluetooth. Параметр имениподключения, являющейся структурой SOCKADDR_BTH, должен указать целевое устройство Bluetooth. Для идентификации целевого устройства используются два механизма:

  • Структура SOCKADDR_BTH может напрямую указать номер порта, к которому запрашивается подключение. Этот механизм требует, чтобы приложение выполняло собственные запросы SDP до попытки подключения.
  • Структура SOCKADDR_BTH может указать уникальный идентификатор класса службы, к которой он хочет подключиться. Если однорангового устройства имеет более одного порта, соответствующего идентификатору класса службы, подключение вызов функции подключается к первой допустимой службе. Этот механизм можно использовать без предварительных запросов SDP.

При использовании структуры SOCKADDR_BTH с функцией подключенияприменяются следующие требования:

  • Элемент btAddr должен быть допустимым удаленным радиоадресом.
  • Для элемента serviceClassId, если член порта равен нулю, система пытается использовать serviceClassId для разрешения удаленного порта, соответствующего службе. Класс службы является нормализованным 128-разрядным GUID, определенным спецификацией Bluetooth. Общие идентификаторы GUID определяются документом "Назначенные номера Bluetooth". Кроме того, для приложения, относящееся к домену, может использоваться уникальный GUID.
  • Элемент порта должен быть допустимым удаленным портом или нулем, если указан элемент serviceClassId.

В следующей таблице перечислены коды результатов для Bluetooth и функция подключения.

Ошибка или ошибка# Описание
WSAEISCONN10056
Функция подключения, вызываемая для уже подключенного сокета.
WSAEACCES10013
Подключение приложения к запрошенной проверке подлинности, но проверка подлинности завершилась ошибкой.
WSAENOBUFS10055
Неустранимая ошибка вне памяти.
WSAEADDRINUSE10048
Запрошенный номер порта или канала используется.
WSAETIMEDOUT10060
Время ожидания ввода-вывода на уровне радиосвязи Bluetooth (PAGE_TIMEOUT).
WSAEDISCON10101
Канал RFCOMM, отключенный удаленным одноранговым узлом.
WSAECONNRESET10054
Мультиплексор RFCOMM (сеанс), отключенный удаленным одноранговым узлом.
WSAECONNABORTED10053
Завершение работы сокета по приложению.
WSAENETUNREACH10051
Ошибка, отличное от времени ожидания на уровне радиосвязи L2CAP или Bluetooth.
WSAEHOSTDOWN10064
RfCOMM получил ответ DM.
WSAENETDOWN10050
Непредвиденная ошибка сети.
WSAESHUTDOWN10058
Канал L2CAP отключен удаленным одноранговым узлом.
WSAEADDRNOTAVAIL10049
Недопустимый порт Или канал Bluetooth или адрес устройства.
WSAEINVAL10022
Событие Plug and Play, событие стека драйверов или другая ошибка вызвала сбой.

сокеты Windows

подключения

SOCKADDR_BTH