Delen via


Opties voor Bluetooth en Socket

Bluetooth voor Windows ondersteunt de volgende socketopties. Socketopties worden ingesteld en opgevraagd met behulp van respectievelijk de setsockopt en getsockopt--functies. Alle volgende opties kunnen worden gebruikt met de functie setsockopt, maar alleen de optie SO_BTH_MTU is beschikbaar voor gebruik met de functie getsockopt.

De volgende instellingen zijn vereist voor het werken met Bluetooth-socketopties:

  • De parameter s moet een Bluetooth-socket zijn.
  • De parameter niveau moet SOL_RFCOMMzijn.

SO_BTH_AUTHENTICATE

Voor niet-verbonden sockets geeft de SO_BTH_AUTHENTICATE aan dat verificatie is vereist voor een verbinding maken of bewerking accepteren om de bewerking te voltooien. Als u deze socketoptie instelt, wordt de verificatie actief gestart tijdens het tot stand brengen van de verbinding, als de twee Bluetooth-apparaten niet eerder zijn geverifieerd. De gebruikersinterface voor het uitwisselen van wachtwoordsleutels wordt, indien nodig, geleverd door het besturingssysteem buiten de toepassingscontext.

Voor uitgaande verbindingen waarvoor verificatie is vereist, mislukt de verbinding bewerking met WSAEACCES- als de verificatie niet lukt. Als reactie kan de toepassing de gebruiker vragen om de twee Bluetooth-apparaten vóór de verbinding te verifiëren.

Voor binnenkomende verbindingen wordt de verbinding geweigerd als verificatie niet tot stand kan worden gebracht en een WSAEHOSTDOWN- fout wordt geretourneerd. Zie BluetoothAuthenticateDevice-voor meer informatie over het verifiëren van Bluetooth-apparaten.

Voor de SO_BTH_AUTHENTICATE socketoptie is optval- een aanwijzer naar ULONG bAuthenticate en moet TRUE; optlen is gelijk aan 'sizeof(ULONG)'.

Windows XP met SP2: SO_BTH_AUTHENTICATE start verificatie voor verbonden sockets en dwingt verificatie af bij verbinding voor niet-verbonden sockets. Voor binnenkomende verbindingen wordt de verbinding geweigerd als verificatie niet kan worden uitgevoerd.

SO_BTH_ENCRYPT

Bij niet-verbonden sockets dwingt de SO_BTH_ENCRYPT socketoptie versleuteling af om een verbinding tot stand te brengen. Versleuteling is alleen beschikbaar voor geverifieerde verbindingen. Voor binnenkomende verbindingen wordt een verbinding waarvoor versleuteling niet tot stand kan worden gebracht, automatisch geweigerd en wordt WSAEHOSTDOWN- geretourneerd als de fout. Voor uitgaande verbindingen mislukt de verbinding maken functie met WSAEACCES- als versleuteling niet tot stand kan worden gebracht. Als reactie kan de toepassing de gebruiker vragen om de twee Bluetooth-apparaten vóór de verbinding te verifiëren. Zie BluetoothAuthenticateDevice-voor meer informatie over het verifiëren van Bluetooth-apparaten.

Voor de SO_BTH_ENCRYPT socketoptie is optval een aanwijzer naar ULONG bEncrypt en moet TRUEzijn; optlen gelijk is aan sizeof(ULONG).

Windows XP met SP2: Voor een socket die is verbonden en geverifieerd, wordt SO_BTH_ENCRYPT versleuteling gestart.

SO_BTH_MTU

De SO_BTH_MTU socketoptie is een geavanceerde optie die voornamelijk wordt gebruikt voor validatie. De SO_BTH_MTU optie verkrijgt of stelt standaard RFCOMM MTU (maximumtransmissieeenheid) voor verbindingsonderhandeling in op een andere waarde dan de standaardwaarde van het RFCOMM-protocol.

Omdat RFCOMM MTU wordt beïnvloed door de onderliggende L2CAP MTU en protocol- en toepassingsminimumwaarden, is de standaardwaarde voor SO_BTH_MTU slechts een startpunt voor onderhandeling met de externe peer en is de uiteindelijke onderhandelde MTU waarschijnlijk afhankelijk van de standaardwaarde. Het instellen van de SO_BTH_MTU waarde kan een negatieve invloed hebben op de doorvoer, en daarom moet elke wijziging worden uitgevoerd met kennis van het onderliggende Bluetooth-protocol.

De SO_BTH_MTU socketoptie kan worden uitgevoerd op aangesloten sockets, maar heeft geen effect als de onderhandeling al is voltooid. Het instellen van de listening -socket (server) heeft geen effect.

De hoeveelheid gegevens die een toepassing in één socket-aanroep kan verzenden of ontvangen, wordt niet beïnvloed door de MTU; MTU beïnvloedt alleen hoe de onderliggende Windows Sockets-serviceprovider pakketten segmenteert voor transport. Zowel de voorgestelde MTU als de MTU die uiteindelijk zijn onderhandeld, moeten tussen RFCOMM_MIN_MTU en RFCOMM_MAX_MTUzijn, zoals gedefinieerd in het headerbestand Ws2bth.h.

Voor de SO_BTH_MTU socketoptie is optval een aanwijzer naar ULONG mtu; optlen is gelijk aan 'sizeof(ULONG)'.

SO_BTH_MTU_MAX

De SO_BTH_MTU_MAX socketoptie is een geavanceerde optie die voornamelijk wordt gebruikt voor validatie. De SO_BTH_MTU_MAX socketoptie stelt de maximale RFCOMM MTU (maximumtransmissieeenheid) in voor verbindingsonderhandeling. Verbindingen met een RFCOMM MTU die gelijk zijn aan of groter zijn dan deze waarde, mislukken tijdens het verbinding maken/accepteren proces. Hoewel het instellen van deze socketoptie is toegestaan voor een aangesloten socket, heeft dit geen effect als de onderhandeling is voltooid. Als u deze socketoptie instelt op een listening socket, wordt de waarde voor alle binnenkomende verbindingen doorgegeven. De MAX MTU-waarde moet tussen RFCOMM_MIN_MTU en RFCOMM_MAX_MTUstaan, zoals gedefinieerd in het headerbestand Ws2bth.h.

Voor de SO_BTH_MTU_MAX socketoptie is optval een aanwijzer naar ULONG max_mtu; optlen is gelijk aan 'sizeof(ULONG)'.

SO_BTH_MTU_MIN

De SO_BTH_MTU_MIN socketoptie is een geavanceerde optie die voornamelijk wordt gebruikt voor validatie. De SO_BTH_MTU_MIN socketoptie stelt de minimale RFCOMM MTU (maximumtransmissieeenheid) in voor verbindingsonderhandeling. Verbindingen met een RFCOMM MTU die kleiner zijn dan deze waarde, mislukken tijdens het verbinding maken/accepteren proces. Hoewel het instellen van deze socketoptie is toegestaan voor een aangesloten socket, heeft dit geen effect als de onderhandeling is voltooid. Als u deze socketoptie instelt op een listening socket, wordt de waarde voor alle binnenkomende verbindingen doorgegeven.

Alleen een luistersocket kan de MTU omlaag herzien, dus als de waarde die wordt voorgesteld door de verbindingsdoos kleiner is dan de waarde die is ingesteld voor SO_BTH_MTU_MIN op de luistersocket, wordt de verbinding geweigerd. De minimale MTU moet tussen RFCOMM_MIN_MTU en RFCOMM_MAX_MTUzijn, zoals gedefinieerd in het headerbestand Ws2bth.h.

Voor de SO_BTH_MTU_MIN socketoptie is optval een aanwijzer naar ULONG min_mtu; optlen is gelijk aan 'sizeof(ULONG)'.

Windows Sockets

getsockopt

setsockopt-

BluetoothAuthenticateDevice-

verbinding maken met

accepteren