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


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

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

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

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

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

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

Ошибка или ошибка# Description
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
самонастраивающийся, событие стека драйверов или другая ошибка вызвала сбой.

Сокеты Windows

connect

SOCKADDR_BTH