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


Bluetooth и привязка

Bluetooth использует функцию привязки для привязки к сокету. Чтобы привязать сокет Bluetooth, вызовите функцию привязки с помощью структуры SOCKADDR_BTH. Используйте структуру SOCKADDR_BTH со следующими параметрами:

name.addressFamily = AF_BTH;
name.btAddr = 0;
name.serviceClassId = GUID_NULL;
name.port = number of service channel, 0 or BT_PORT_ANY;

В клиентских приложениях элемент порта должен быть нулевым, чтобы разрешить назначение соответствующей локальной конечной точки. В серверных приложениях член порта должен быть допустимым номером порта или BT_PORT_ANY; порты, автоматически назначенные с помощью BT_PORT_ANY, могут быть запрошены впоследствии с вызовом функции getsockname . Допустимый диапазон для запроса определенного порта RFCOMM — 1–30. Каналы сервера — это глобальный ресурс, и только 30 каналов сервера доступны для RFCOMM на любом устройстве Bluetooth, которое должно быть предоставлено всем сокетам Windows, принадлежащим семейству адресов Bluetooth. Если канал сервера недоступен или если указанный канал сервера уже зарезервирован, вызов привязки завершается сбоем.

После успешного возвращения из привязки канал сервера зарезервирован до закрытия сокета. Используйте функцию getsockname , чтобы получить номер канала для регистрации SDP.

Приложения должны использовать автоматическое выделение для канала сервера.

Функция привязки не автоматически объявляет серверное приложение с помощью Bluetooth SDP; приложения должны вызывать функцию WSASetService, чтобы найти удаленные приложения Bluetooth.

Сокеты Windows

bind