다음을 통해 공유


Bluetooth 및 소켓 옵션

Windows용 Bluetooth는 다음 소켓 옵션을 지원합니다. 소켓 옵션은 각각 setsockoptgetsockopt 함수를 사용하여 설정되고 쿼리됩니다. 다음 옵션은 모두 setsockopt 함수와 함께 사용할 수 있지만 SO_BTH_MTU 옵션만 getsockopt 함수에 사용할 수 있습니다.

Bluetooth 소켓 옵션을 사용하려면 다음 설정이 필요합니다.

  • s 매개 변수는 Bluetooth 소켓이어야 합니다.
  • level 매개 변수는 SOL_RFCOMM 합니다.

SO_BTH_AUTHENTICATE

연결이 끊긴 소켓의 경우 SO_BTH_AUTHENTICATE연결 또는 수락 작업이 성공적으로 완료되는 데 인증이 필요하도록 지정합니다. 이 소켓 옵션을 설정하면 두 Bluetooth 디바이스가 이전에 인증되지 않은 경우 연결 설정 중에 인증이 적극적으로 시작됩니다. 필요한 경우 암호 교환에 대한 사용자 인터페이스는 애플리케이션 컨텍스트 외부의 운영 체제에서 제공됩니다.

인증이 필요한 나가는 연결의 경우 인증에 성공하지 못하면 WSAEACCES연결 작업이 실패합니다. 이에 대한 응답으로 애플리케이션은 연결하기 전에 사용자에게 두 개의 Bluetooth 디바이스를 인증하라는 메시지를 표시할 수 있습니다.

들어오는 연결의 경우 인증을 설정할 수 없는 경우 연결이 거부되고 WSAEHOSTDOWN 오류가 반환됩니다. Bluetooth 디바이스 인증에 대한 자세한 내용은 BluetoothAuthenticateDevice를 참조하세요.

SO_BTH_AUTHENTICATE 소켓 옵션의 경우 optval은 ULONG bAuthenticate에 대한 포인터이며 TRUE여야 합니다. optlen은 "sizeof(ULONG)"와 같습니다.

WINDOWS XP SP2: SO_BTH_AUTHENTICATE 연결된 소켓에 대한 인증을 시작하고 연결되지 않은 소켓에 대한 연결 시 인증을 강제로 적용합니다. 들어오는 연결의 경우 인증을 수행할 수 없는 경우 연결이 거부됩니다.

SO_BTH_ENCRYPT

연결되지 않은 소켓에서 SO_BTH_ENCRYPT 소켓 옵션은 암호화를 적용하여 연결을 설정합니다. 암호화는 인증된 연결에만 사용할 수 있습니다. 들어오는 연결의 경우 암호화를 설정할 수 없는 연결이 자동으로 거부되고 WSAEHOSTDOWN 이 오류로 반환됩니다. 나가는 연결의 경우 암호화를 설정할 수 없는 경우 WSAEACCES와 함께 연결 함수가 실패합니다. 이에 대한 응답으로 애플리케이션은 연결하기 전에 사용자에게 두 개의 Bluetooth 디바이스를 인증하라는 메시지를 표시할 수 있습니다. Bluetooth 디바이스 인증에 대한 자세한 내용은 BluetoothAuthenticateDevice를 참조하세요.

SO_BTH_ENCRYPT 소켓 옵션의 경우 optval 은 ULONG bEncrypt 에 대한 포인터이며 TRUE여야 합니다. optlen 은 sizeof(ULONG)와 동일합니다.

WINDOWS XP SP2: 연결되고 인증된 소켓의 경우 SO_BTH_ENCRYPT 암호화를 시작합니다.

SO_BTH_MTU

SO_BTH_MTU 소켓 옵션은 유효성 검사에 주로 사용되는 고급 옵션입니다. SO_BTH_MTU 옵션은 연결 협상의 기본 RFCOMM MTU(최대 전송 단위)를 RFCOMM 프로토콜-기본값과 다른 값으로 가져오거나 설정합니다.

RFCOMM MTU는 기본 L2CAP MTU 및 프로토콜 및 애플리케이션 최소값 및 최대값의 영향을 받으므로 SO_BTH_MTU 기본값은 원격 피어와의 협상을 위한 시작점일 뿐이며 최종 협상된 MTU는 기본값과 다를 수 있습니다. SO_BTH_MTU 값을 설정하면 처리량에 부정적인 영향을 줄 수 있으므로 기본 Bluetooth 프로토콜에 대한 지식으로 수정을 수행해야 합니다.

SO_BTH_MTU 소켓 옵션은 연결된 소켓에서 수행할 수 있지만 협상이 이미 완료된 경우에는 아무런 효과가 없습니다. 수신 대기(서버) 소켓에 설정해도 아무런 효과가 없습니다.

애플리케이션이 단일 소켓 호출에서 보내거나 받을 수 있는 데이터의 양은 MTU의 영향을 받지 않습니다. MTU는 기본 Windows Sockets 서비스 공급자가 전송을 위해 패킷을 분할하는 방법에만 영향을 줍니다. 제안된 MTU와 궁극적으로 협상된 MTU는 Ws2bth.h 헤더 파일에 정의된 대로 RFCOMM_MIN_MTU RFCOMM_MAX_MTU 사이에 있어야 합니다.

SO_BTH_MTU 소켓 옵션의 경우 optval은 ULONG mtu에 대한 포인터입니다. optlen은 "sizeof(ULONG)"와 같습니다.

SO_BTH_MTU_MAX

SO_BTH_MTU_MAX 소켓 옵션은 유효성 검사에 주로 사용되는 고급 옵션입니다. SO_BTH_MTU_MAX 소켓 옵션은 연결 협상에 대한 최대 RFCOMM MTU(최대 전송 단위)를 설정합니다. 이 값과 같거나 큰 RFCOMM MTU와의 연결은 연결/허용 프로세스 중에 실패합니다. 연결된 소켓에 대해 이 소켓 옵션을 설정할 수 있지만 협상이 완료되면 아무런 효과가 없습니다. 수신 대기 소켓에서 이 소켓 옵션을 설정하면 들어오는 모든 연결의 값이 전파됩니다. MAX MTU 값은 Ws2bth.h 헤더 파일에 정의된 대로 RFCOMM_MIN_MTU 및 RFCOMM_MAX_MTU사이여야 합니다.

SO_BTH_MTU_MAX 소켓 옵션의 경우 optval은 ULONG max_mtu 대한 포인터입니다. optlen은 "sizeof(ULONG)"와 같습니다.

SO_BTH_MTU_MIN

SO_BTH_MTU_MIN 소켓 옵션은 유효성 검사에 주로 사용되는 고급 옵션입니다. SO_BTH_MTU_MIN 소켓 옵션은 연결 협상을 위한 최소 RFCOMM MTU(최대 전송 단위)를 설정합니다. 이 값보다 작은 RFCOMM MTU와의 연결은 연결/허용 프로세스 중에 실패합니다. 연결된 소켓에 대해 이 소켓 옵션을 설정할 수 있지만 협상이 완료되면 아무런 효과가 없습니다. 수신 대기 소켓에서 이 소켓 옵션을 설정하면 들어오는 모든 연결의 값이 전파됩니다.

수신 대기 소켓만 MTU를 아래쪽으로 수정할 수 있으므로 연결 소켓에서 제안한 값이 수신 대기 소켓의 SO_BTH_MTU_MIN 설정된 값보다 작으면 연결이 거부됩니다. 최소 MTU는 Ws2bth.h 헤더 파일에 정의된 대로 RFCOMM_MIN_MTU 및 RFCOMM_MAX_MTU사이여야 합니다.

SO_BTH_MTU_MIN 소켓 옵션의 경우 optval 은 ULONG min_mtu 대한 포인터입니다. optlen 은 "sizeof(ULONG)"와 같습니다.

Windows 소켓

getsockopt

setsockopt

BluetoothAuthenticateDevice

연결

받아들일