Partager via


Options Bluetooth et socket

Bluetooth pour Windows prend en charge les options de socket suivantes. Les options de socket sont définies et interrogées à l’aide des fonctions setsockopt et getsockopt , respectivement. Toutes les options suivantes peuvent être utilisées avec la fonction setsockopt , mais seule l’option SO_BTH_MTU est disponible pour une utilisation avec la fonction getsockopt .

Les paramètres suivants sont requis pour utiliser les options de socket Bluetooth :

  • Le paramètre s doit être un socket Bluetooth.
  • Le paramètre level doit être SOL_RFCOMM.

SO_BTH_AUTHENTICATE

Pour les sockets déconnectés, le SO_BTH_AUTHENTICATE spécifie que l’authentification est requise pour qu’une opération de connexion ou d’acceptation se termine correctement. La définition de cette option de socket lance activement l’authentification lors de l’établissement de la connexion, si les deux appareils Bluetooth n’ont pas été précédemment authentifiés. L’interface utilisateur pour l’échange de clés d’accès, si nécessaire, est fournie par le système d’exploitation en dehors du contexte de l’application.

Pour les connexions sortantes qui nécessitent une authentification, l’opération de connexion échoue avec WSAEACCES si l’authentification échoue. En réponse, l’application peut inviter l’utilisateur à authentifier les deux appareils Bluetooth avant la connexion.

Pour les connexions entrantes, la connexion est rejetée si l’authentification ne peut pas être établie et retourne une erreur WSAEHOSTDOWN . Pour plus d’informations sur l’authentification des appareils Bluetooth, consultez BluetoothAuthenticateDevice.

Pour l’option de socket SO_BTH_AUTHENTICATE , optval est un pointeur vers ULONG bAuthenticate et doit avoir la valeur TRUE ; optlen équivaut à « sizeof(ULONG) ».

Windows XP avec SP2 : SO_BTH_AUTHENTICATE démarre l’authentification pour les sockets connectés et force l’authentification lors de la connexion pour les sockets non connectés. Pour les connexions entrantes, la connexion est rejetée si l’authentification ne peut pas être effectuée.

SO_BTH_ENCRYPT

Sur les sockets non connectés, l’option de socket SO_BTH_ENCRYPT applique le chiffrement pour établir une connexion. Le chiffrement est disponible uniquement pour les connexions authentifiées. Pour les connexions entrantes, une connexion pour laquelle le chiffrement ne peut pas être établi est automatiquement rejetée et retourne WSAEHOSTDOWN comme erreur. Pour les connexions sortantes, la fonction de connexion échoue avec WSAEACCES si le chiffrement ne peut pas être établi. En réponse, l’application peut inviter l’utilisateur à authentifier les deux appareils Bluetooth avant la connexion. Pour plus d’informations sur l’authentification des appareils Bluetooth, consultez BluetoothAuthenticateDevice.

Pour l’option de socket SO_BTH_ENCRYPT, optval est un pointeur vers ULONG bEncrypt et doit avoir la valeur TRUE ; optlen équivaut à sizeof(ULONG).

Windows XP avec SP2 : Pour un socket connecté et authentifié, SO_BTH_ENCRYPT démarre le chiffrement.

SO_BTH_MTU

L’option de socket SO_BTH_MTU est une option avancée utilisée principalement pour la validation. L’option SO_BTH_MTU obtient ou définit par défaut RFCOMM MTU (unité de transmission maximale) pour la négociation de la connexion sur une valeur différente de la valeur par défaut du protocole RFCOMM.

Étant donné que la MTU RFCOMM est affectée par la MTU L2CAP sous-jacente, ainsi que par les valeurs minimales et maximales du protocole et de l’application, la valeur par défaut de SO_BTH_MTU n’est qu’un point de départ pour la négociation avec l’homologue distant, et la MTU négociée finale est susceptible de varier de la valeur par défaut. La définition de la valeur SO_BTH_MTU peut avoir un impact négatif sur le débit et, par conséquent, toute modification doit être effectuée en connaissance du protocole Bluetooth sous-jacent.

L’option de socket SO_BTH_MTU peut être effectuée sur les sockets connectés, mais n’a aucun effet si la négociation est déjà terminée. Sa définition sur le socket d’écoute (serveur) n’a aucun effet.

La quantité de données qu’une application peut envoyer ou recevoir dans un seul appel de socket n’est pas affectée par la MTU ; MTU affecte uniquement la façon dont le fournisseur de services Windows Sockets sous-jacent segmente les paquets pour le transport. La MTU proposée et la MTU finalement négociées doivent être comprises entre RFCOMM_MIN_MTU et RFCOMM_MAX_MTU, comme défini dans le fichier d’en-tête Ws2bth.h.

Pour l’option de socket SO_BTH_MTU , optval est un pointeur vers ULONG mtu ; optlen équivaut à « sizeof(ULONG) ».

SO_BTH_MTU_MAX

L’option de socket SO_BTH_MTU_MAX est une option avancée utilisée principalement pour la validation. L’option de socket SO_BTH_MTU_MAX définit le nombre maximal de MTU RFCOMM (unité de transmission maximale) pour la négociation de la connexion. Les connexions avec une MTU RFCOMM égale ou supérieure à cette valeur échouent pendant le processusd’acceptation de la connexion/. Bien que la définition de cette option de socket soit autorisée pour un socket connecté, elle n’a aucun effet si la négociation est terminée. La définition de cette option de socket sur un socket d’écoute propage la valeur pour toutes les connexions entrantes. La valeur MAX MTU doit être comprise entre RFCOMM_MIN_MTU et RFCOMM_MAX_MTU, comme défini dans le fichier d’en-tête Ws2bth.h.

Pour l’option de socket SO_BTH_MTU_MAX , optval est un pointeur vers les max_mtu ULONG ; optlen équivaut à « sizeof(ULONG) ».

SO_BTH_MTU_MIN

L’option de socket SO_BTH_MTU_MIN est une option avancée utilisée principalement pour la validation. L’option de socket SO_BTH_MTU_MIN définit l’unité de transmission maximale (MTU RFCOMM) minimale pour la négociation de la connexion. Les connexions avec une MTU RFCOMM inférieure à cette valeur échouent pendant le processusd’acceptation de la connexion/. Bien que la définition de cette option de socket soit autorisée pour un socket connecté, elle n’a aucun effet si la négociation est terminée. La définition de cette option de socket sur un socket d’écoute propage la valeur pour toutes les connexions entrantes.

Seul un socket d’écoute peut réviser la MTU vers le bas. Par conséquent, si la valeur proposée par le socket de connexion est inférieure à la valeur définie pour SO_BTH_MTU_MIN sur le socket d’écoute, la connexion est refusée. La MTU minimale doit être comprise entre RFCOMM_MIN_MTU et RFCOMM_MAX_MTU, comme défini dans le fichier d’en-tête Ws2bth.h.

Pour l’option de socket SO_BTH_MTU_MIN, optval est un pointeur vers le min_mtu ULONG ; optlen équivaut à « sizeof(ULONG) ».

Windows Sockets

getsockopt

setsockopt

BluetoothAuthenticateDevice

Connecter

Accepter