Bluetooth e connessione
Bluetooth usa la funzione connect per connettersi a un dispositivo Bluetooth di destinazione, usando un socket Bluetooth creato in precedenza. Il nome parametro della funzione connect, ovvero una struttura SOCKADDR_BTH, deve specificare un dispositivo Bluetooth di destinazione. Per identificare il dispositivo di destinazione vengono usati due meccanismi:
- La struttura SOCKADDR_BTH può specificare direttamente il numero di porta a cui viene richiesta una connessione. Questo meccanismo richiede all'applicazione di eseguire le proprie query SDP prima di tentare un'operazione di connessione .
- La struttura SOCKADDR_BTH può specificare l'ID classe di servizio univoco del servizio a cui vuole connettersi. Se il dispositivo peer ha più porte che corrispondono all'ID classe del servizio, la chiamata di funzione connect si connette al primo servizio valido. Questo meccanismo può essere usato senza query SDP precedenti.
Quando si usa la struttura SOCKADDR_BTH con la funzionedi connessione, si applicano i requisiti seguenti:
- Il membro btAddr deve essere un indirizzo radio remoto valido.
- Per il membro serviceClassId, se il membro della porta è zero, il sistema tenta di usare serviceClassId per risolvere la porta remota corrispondente al servizio. La classe di servizio è un GUID a 128 bit normalizzato, definito dalla specifica Bluetooth. I GUID comuni sono definiti dal documento Numeri assegnati Bluetooth. In alternativa, è possibile usare un GUID univoco per un'applicazione specifica del dominio.
- La porta membro deve essere una porta remota valida oppure zero se è specificato il membro serviceClassId.
Nella tabella seguente sono elencati i codici dei risultati per Bluetooth e la funzione connect.
Errore/errore# | Descrizione |
---|---|
WSAEISCONN10056 |
La funzione connect chiamata per il socket già connesso. |
WSAEACCES10013 |
La connessione dell'applicazione ha richiesto l'autenticazione, ma l'autenticazione non è riuscita. |
WSAENOBUFS10055 |
Errore di memoria insufficiente irreversibile. |
WSAEADDRINUSE10048 |
Il numero di porta/canale richiesto è in uso. |
WSAETIMEDOUT10060 |
Timeout dell'I/O a livello di radio Bluetooth (PAGE_TIMEOUT). |
WSAEDISCON10101 |
Canale RFCOMM disconnesso dal peer remoto. |
WSAECONNRESET10054 |
Multiplexor RFCOMM (sessione) disconnesso dal peer remoto. |
WSAECONNABORTED10053 |
Socket arrestato dall'applicazione. |
WSAENETUNREACH10051 |
Errore diverso dal timeout a livello di radio L2CAP o Bluetooth. |
WSAEHOSTDOWN10064 |
Risposta DM ricevuta da RFCOMM. |
WSAENETDOWN10050 |
Errore di rete imprevisto. |
WSAESHUTDOWN10058 |
Canale L2CAP disconnesso dal peer remoto. |
WSAEADDRNOTAVAIL10049 |
Porta/canale Bluetooth o indirizzo del dispositivo non valido. |
WSAEINVAL10022 |
Plug and Play, evento dello stack di driver o altro errore causato da un errore. |