Bluetooth und Verbinden
Bluetooth verwendet die Verbindungsfunktion , um eine Verbindung mit einem Bluetooth-Zielgerät herzustellen, wobei ein zuvor erstellter Bluetooth-Socket verwendet wird. Der name-Parameter der Verbindungsfunktion , bei der es sich um eine SOCKADDR_BTH-Struktur handelt, muss ein Bluetooth-Zielgerät angeben. Zum Identifizieren des Zielgeräts werden zwei Mechanismen verwendet:
- Die SOCKADDR_BTH-Struktur kann direkt die Portnummer angeben, mit der eine Verbindung angefordert wird. Dieser Mechanismus erfordert, dass die Anwendung vor dem Versuch eines Verbindungsvorgangs eigene SDP-Abfragen ausführt.
- Die SOCKADDR_BTH-Struktur kann die eindeutige Dienstklassen-ID des Diensts angeben, mit dem eine Verbindung hergestellt werden soll. Wenn das Peergerät über mehr als einen Port verfügt, der der Dienstklassen-ID entspricht, stellt der Verbindungsfunktionsaufruf eine Verbindung mit dem ersten gültigen Dienst her. Dieser Mechanismus kann ohne vorherige SDP-Abfragen verwendet werden.
Bei Verwendung der SOCKADDR_BTH-Struktur mit der Verbindungsfunktion gelten die folgenden Anforderungen:
- Das btAddr-Element muss eine gültige Remotefunkadresse sein.
- Wenn der Portmember für das serviceClassId-Element 0 ist, versucht das System, serviceClassId zu verwenden, um den Remoteport aufzulösen, der dem Dienst entspricht. Die Dienstklasse ist eine normalisierte 128-Bit-GUID, die durch die Bluetooth-Spezifikation definiert wird. Allgemeine GUIDs werden durch das Dokument Bluetooth Assigned Numbers definiert. Alternativ kann eine eindeutige GUID für eine domänenspezifische Anwendung verwendet werden.
- Das Portmember muss ein gültiger Remoteport oder null sein, wenn das ServiceClassId-Element angegeben ist.
In der folgenden Tabelle sind die Ergebniscodes für Bluetooth und die Verbindungsfunktion aufgeführt.
Fehler/Fehler # | BESCHREIBUNG |
---|---|
WSAEISCONN10056 |
Die Verbindungsfunktion ruft für bereits verbundene Sockets auf. |
WSAEACCES10013 |
Die Verbindung der Anwendung hat die Authentifizierung angefordert, aber die Authentifizierung ist fehlgeschlagen. |
WSAENOBUFS10055 |
Nicht wiederherstellbarer Fehler aus dem Arbeitsspeicher. |
WSAEADDRINUSE10048 |
Die angeforderte Port-/Kanalnummer wird verwendet. |
WSAETIMEDOUT10060 |
Das E/A-Timeout auf Bluetooth-Funkebene (PAGE_TIMEOUT). |
WSAEDISCON10101 |
Der VOM Remotepeer getrennte RFCOMM-Kanal. |
WSAECONNRESET10054 |
Der RFCOMM-Multiplexor (Sitzung), der vom Remotepeer getrennt wird. |
WSAECONNABORTED10053 |
Socket wird nach Anwendung heruntergefahren. |
WSAENETUNREACH10051 |
Ein anderer Fehler als Timeout auf L2CAP- oder Bluetooth-Funkebene. |
WSAEHOSTDOWN10064 |
Die RFCOMM-Antwort wurde empfangen. |
WSAENETDOWN10050 |
Unerwarteter Netzwerkfehler. |
WSAESHUTDOWN10058 |
Der vom Remote peer getrennte L2CAP-Kanal. |
WSAEADDRNOTAVAIL10049 |
Bluetooth-Port/-Kanal oder Geräteadresse ungültig. |
WSAEINVAL10022 |
Plug & Play, Treiberstapelereignis oder ein anderer Fehler verursacht einen Fehler. |