Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Bluetooth para Windows admite las siguientes opciones de socket. Las opciones de socket se establecen y consultan mediante lassetsockopty getsockopt funciones, respectivamente. Todas las opciones siguientes se pueden usar con la función setsockopt, pero solo la opción SO_BTH_MTU está disponible para su uso con la función getockopt .
Se requieren las siguientes opciones de configuración para trabajar con las opciones de socket Bluetooth:
- El parámetro debe ser un socket Bluetooth.
- El parámetro de nivel de debe ser SOL_RFCOMM.
SO_BTH_AUTHENTICATE
Para los sockets desconectados, el SO_BTH_AUTHENTICATE especifica que se requiere autenticación para un conectar o aceptar operación para completarse correctamente. Establecer esta opción de socket inicia activamente la autenticación durante el establecimiento de la conexión, si los dos dispositivos Bluetooth no se autenticaron previamente. El sistema operativo proporciona la interfaz de usuario para el intercambio de claves de acceso, si es necesario, fuera del contexto de la aplicación.
En el caso de las conexiones salientes que requieren autenticación, se produce un error en la operación de conexiónWSAEACC ES si la autenticación no se realiza correctamente. En respuesta, la aplicación puede pedir al usuario que autentique los dos dispositivos Bluetooth antes de la conexión.
Para las conexiones entrantes, la conexión se rechaza si no se puede establecer la autenticación y devuelve un error WSAEHOSTDOWN. Para obtener más información sobre cómo autenticar dispositivos Bluetooth, consulte BluetoothAuthenticateDevice.
Para la opción de socket SO_BTH_AUTHENTICATE, optval es un puntero a ULONG bAuthenticate y debe ser TRUE; optlen equivale a "sizeof(ULONG)".
Windows XP con SP2: SO_BTH_AUTHENTICATE inicia la autenticación para sockets conectados y fuerza la autenticación tras la conexión de sockets no conectados. En el caso de las conexiones entrantes, la conexión se rechaza si no se puede realizar la autenticación.
SO_BTH_ENCRYPT
En sockets no conectados, la opción de socket SO_BTH_ENCRYPT exige el cifrado para establecer una conexión. El cifrado solo está disponible para las conexiones autenticadas. Para las conexiones entrantes, se rechaza automáticamente una conexión para la que no se puede establecer el cifrado y devuelve WSAEHOSTDOWN como error. En el caso de las conexiones salientes, la función connect produce un error con WSAEACCES si no se puede establecer el cifrado. En respuesta, la aplicación puede pedir al usuario que autentique los dos dispositivos Bluetooth antes de la conexión. Para obtener más información sobre cómo autenticar dispositivos Bluetooth, consulte BluetoothAuthenticateDevice.
Para la opción de socket de SO_BTH_ENCRYPT, optval es un puntero a ULONG bEncrypt y debe ser TRUE; optlen es equivalente a sizeof(ULONG).
Windows XP con SP2: Para un socket conectado y autenticado, SO_BTH_ENCRYPT inicia el cifrado.
SO_BTH_MTU
La opción de socket SO_BTH_MTU es una opción avanzada que se usa principalmente para la validación. La opción SO_BTH_MTU obtiene o establece el MTU RFCOMM predeterminado (unidad de transmisión máxima) para la negociación de conexión a un valor diferente del valor predeterminado del protocolo RFCOMM.
Dado que el MTU de RFCOMM se ve afectado por la MTU L2CAP subyacente, y el protocolo y los mínimos y máximos de la aplicación, el valor predeterminado de SO_BTH_MTU es solo un punto de partida para la negociación con el mismo nivel remoto, y es probable que la MTU negociada final variará de la predeterminada. Establecer el valor de SO_BTH_MTU puede afectar negativamente al rendimiento y, como tal, cualquier modificación debe realizarse con conocimiento del protocolo Bluetooth subyacente.
La opción de socket SO_BTH_MTU se puede realizar en sockets conectados, pero no tiene ningún efecto si la negociación ya se ha completado. Establecerlo en el socket de escucha (servidor) no tiene ningún efecto.
La cantidad de datos que una aplicación puede enviar o recibir en una sola llamada de socket no se ve afectada por la MTU; MTU solo afecta a la forma en que los paquetes subyacentes del proveedor de servicios de Windows Sockets para el transporte. Tanto la MTU propuesta como la MTU negociada en última instancia deben estar entre RFCOMM_MIN_MTU y RFCOMM_MAX_MTU, tal como se define en el archivo de encabezado Ws2bth.h.
Para la opción de socket de SO_BTH_MTU, optval es un puntero a ULONG mtu; optlen es equivalente a "sizeof(ULONG)".
SO_BTH_MTU_MAX
La opción de socket SO_BTH_MTU_MAX es una opción avanzada que se usa principalmente para la validación. La opción de socket SO_BTH_MTU_MAX establece el MTU RFCOMM máximo (unidad de transmisión máxima) para la negociación de la conexión. Las conexiones con un MTU RFCOMM igual o mayor que este valor producen un error durante el conectar/aceptar proceso. Aunque se permite establecer esta opción de socket para un socket conectado, no tiene ningún efecto si la negociación se ha completado. Al establecer esta opción de socket en un socket de escucha, se propaga el valor de todas las conexiones entrantes. El valor de MAX MTU debe estar entre RFCOMM_MIN_MTU y RFCOMM_MAX_MTU, tal como se define en el archivo de encabezado Ws2bth.h.
Para la opción de socket de SO_BTH_MTU_MAX, optval es un puntero a ULONG max_mtu; optlen es equivalente a "sizeof(ULONG)".
SO_BTH_MTU_MIN
La opción de socket SO_BTH_MTU_MIN es una opción avanzada que se usa principalmente para la validación. La opción de socket SO_BTH_MTU_MIN establece el MTU RFCOMM mínimo (unidad de transmisión máxima) para la negociación de la conexión. Las conexiones con un MTU RFCOMM menor que este valor producen un error durante la conexión de /aceptar proceso. Aunque se permite establecer esta opción de socket para un socket conectado, no tiene ningún efecto si la negociación se ha completado. Al establecer esta opción de socket en un socket de escucha, se propaga el valor de todas las conexiones entrantes.
Solo un socket de escucha puede revisar la MTU hacia abajo, por lo tanto, si el valor propuesto por el socket de conexión es menor que el valor establecido para SO_BTH_MTU_MIN en el socket de escucha, se rechaza la conexión. La MTU mínima debe estar entre RFCOMM_MIN_MTU y RFCOMM_MAX_MTU, tal como se define en el archivo de encabezado Ws2bth.h.
Para la opción de socket de SO_BTH_MTU_MIN, optval es un puntero a ULONG min_mtu; optlen equivale a "sizeof(ULONG)".
Temas relacionados