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.

Windows Sockets

Verbinden

SOCKADDR_BTH