Вызывается она просто, без всяких параметров. Возвращаемое значение, в принципе, можно не проверять:
WSACleanup;
Создание клиента
После того, как библиотека инициализирована, мы можем вызывать функции WinSock. Давайте создадим простой сокет, для работы с Bluetooth устройствами. Для этого необходимо вызвать функцию socket.
Code: |
function socket(af, type_, protocol: Integer): TSocket; stdcall; |
Вот как это делается:
Code: |
var ASocket: TSocket; begin ASocket := socket(AF_BTH, SOCK_STREAM, BTHPROTO_RFCOMM); if ASocket = INVALID_SOCKET then RaiseLastOsError; |
Функция вернет корректный описатель сокета, либо INVALID_SOCKET в случае ошибки. Запомните, что Bluetooth поддерживает только потоковые сокеты (SOCK_STREAM).
Далее нам необходимо заполнить структуру SOCKADDR_BTH. В эту структуру записывается информация о сервере, к которому нам нужно подключиться (адрес, сервис и т.п.). Делается это следующим образом:
Code: |
var Addr: SOCKADDR_BTH; AddrSize: DWORD; begin AddrSize := SizeOf(SOCKADDR_BTH); FillChar(Addr, AddrSize, 0); with Addr do begin addressFamily := AF_BTH; btAddr := ADeviceAddress; serviceClassId := SerialPortServiceClass_UUID; port := DWORD(BT_PORT_ANY); end; |
Здесь в переменной ADeviceAddress должен быть адрес устройства (Int64), присоединяемся к любому порту (BT_PORT_ANY) сервиса SerialPortServiceClass.
Далее вызываем функцию connect, которая имеет вид:
Code: |
function connect(s: TSocket; name: PSockAddr; namelen: Integer): Integer; stdcall; |
Делается это вот так:
Code: |
if connect(ASocket, @Addr, AddrSize) <> 0 then RaiseLastOsError; |
Просьба писать ваши замечания, наблюдения и все остальное,
что поможет улучшить предоставляемую информацию на этом сайте.
ВСЕ КОММЕНТАРИИ МОДЕРИРУЮТСЯ ВРУЧНУЮ, ТАК ЧТО СПАМИТЬ БЕСПОЛЕЗНО!