다음을 통해 공유


Bluetooth 및 연결

Bluetooth는 연결 기능을 사용하여 이전에 만든 Bluetooth 소켓을 사용하여 대상 Bluetooth 디바이스에 연결합니다. SOCKADDR_BTH 구조인 connect 함수의 이름 매개 변수는 대상 Bluetooth 디바이스를 지정해야 합니다. 대상 디바이스를 식별하는 데 사용되는 두 가지 메커니즘은 다음과 같습니다.

  • SOCKADDR_BTH 구조체는 연결이 요청되는 포트 번호를 직접 지정할 수 있습니다. 이 메커니즘을 사용하려면 애플리케이션이 연결 작업을 시도하기 전에 자체 SDP 쿼리를 수행해야 합니다.
  • SOCKADDR_BTH 구조체는 연결하려는 서비스의 고유한 서비스 클래스 ID를 지정할 수 있습니다. 피어 디바이스에 서비스 클래스 ID에 해당하는 포트가 두 개 이상 있는 경우 connect 함수 호출은 첫 번째 유효한 서비스에 연결됩니다. 이 메커니즘은 이전 SDP 쿼리 없이 사용할 수 있습니다.

connect 함수와 함께 SOCKADDR_BTH 구조를 사용하는 경우 다음 요구 사항이 적용됩니다.

  • btAddr 멤버는 유효한 원격 라디오 주소여야 합니다.
  • serviceClassId 멤버의 경우 포트 멤버가 0이면 시스템에서 serviceClassId를 사용하여 서비스에 해당하는 원격 포트를 resolve. 서비스 클래스는 Bluetooth 사양에 의해 정의된 정규화된 128비트 GUID입니다. 일반적인 GUID는 Bluetooth 할당 번호 문서에 의해 정의됩니다. 또는 도메인별 애플리케이션에 고유한 GUID를 사용할 수 있습니다.
  • 포트 멤버는 유효한 원격 포트이거나 serviceClassId 멤버가 지정된 경우 0이어야 합니다.

다음 표에서는 Bluetooth 및 connect 함수에 대한 결과 코드를 나열합니다.

오류/오류 # 설명
WSAEISCONN10056
연결 함수는 이미 연결된 소켓에 대해 호출되었습니다.
WSAEACCES10013
애플리케이션 연결에서 인증을 요청했지만 인증에 실패했습니다.
WSAENOBUFS10055
복구할 수 없는 메모리 부족 오류입니다.
WSAEADDRINUSE10048
요청된 포트/채널 번호가 사용 중입니다.
WSAETIMEDOUT10060
I/O는 Bluetooth 라디오 수준(PAGE_TIMEOUT)에서 시간 초과되었습니다.
WSAEDISCON10101
원격 피어로 연결이 끊긴 RFCOMM 채널입니다.
WSAECONNRESET10054
원격 피어로 연결이 끊긴 RFCOMM 멀티플렉서(세션)입니다.
WSAECONNABORTED10053
애플리케이션에 의해 소켓이 종료되었습니다.
WSAENETUNREACH10051
L2CAP 또는 Bluetooth 라디오 수준에서 시간 제한 이외의 오류입니다.
WSAEHOSTDOWN10064
RFCOMM은 DM 응답을 받았습니다.
WSAENETDOWN10050
예기치 않은 네트워크 오류입니다.
WSAESHUTDOWN10058
원격 피어로 연결이 끊긴 L2CAP 채널입니다.
WSAEADDRNOTAVAIL10049
Bluetooth 포트/채널 또는 디바이스 주소가 잘못되었습니다.
WSAEINVAL10022
플러그 앤 플레이, 드라이버 스택 이벤트 또는 기타 오류로 인해 오류가 발생했습니다.

Windows 소켓

연결

SOCKADDR_BTH