Если функция выполнится успешно, вернет 0, в противном случае отличное от нуля значение.
После того, как соединение установлено, можно передавать и принимать данные через сокет функциями send и recv.
Code: |
function send(s: TSocket; var buf; len, flags: Integer): Integer; stdcall; function recv(s: TSocket; var buf; len, flags: Integer): Integer; stdcall; |
Функции возвращают количество переданных или принятых байт в случае успеха и отрицательное число в случае ошибки. Количество переданных или принятых байт может быть меньше, чем указанная в параметре len длина буфера. Тогда вам нужно повторить передачу/прием оставшихся байт.
Ну и закрытие сокета осуществляется вызовом функции closesocket:
Code: |
function closesocket(s: TSocket): Integer; stdcall; |
Опять же, возвращаемое значение можно проигнорировать (если вы знаете, что делаете).
В общем то, вышеуказанный материал не представляет ничего нового для тех, кто хоть раз программировал под WinSock. Единственное, на что следует обратить внимание, это новые константы AF_BTH и BTHPROTO_RFCOMM.
Создание сервера
Как и создание клиента, создание сервера ничем не отличается от создания сервера для любой службы WinSock.
И так, начнем. Сокет создается также как и в приведенном выше примере для клиента. Точно также заполняем структуру Addt: SOCKADDR_BTH. Только в качестве адреса устройства указываем 0. Далее, необходимо привязать сокет к адресу. Делается это функцией bind:
Code: |
function bind(s: TSocket; name: PSockAddr; namelen: Integer): Integer; stdcall; |
Которая вызывается следующим образом:
Code: |
if Bind(ASocket, @Addr, AddrSize) <> 0 then RaiseLastOsError; |
Просьба писать ваши замечания, наблюдения и все остальное,
что поможет улучшить предоставляемую информацию на этом сайте.
ВСЕ КОММЕНТАРИИ МОДЕРИРУЮТСЯ ВРУЧНУЮ, ТАК ЧТО СПАМИТЬ БЕСПОЛЕЗНО!