Bluetooth und Verbinden
Bluetooth verwendet die Verbinden Funktion, um eine Verbindung mit einem Bluetooth-Zielgerät herzustellen, wobei ein zuvor erstelltes Bluetooth-Socket verwendet wird. Der Name Parameter der connect-Funktion, die eine SOCKADDR_BTH Struktur ist, 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 ihre eigenen SDP-Abfragen vor dem Versuch einer Verbindung Vorgangs 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 mehrere Ports verfügt, die der Dienstklassen-ID entsprechen, stellt der verbinden Funktionsaufruf 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 connect-Funktion gelten die folgenden Anforderungen:
- Das btAddr- Mitglied muss eine gültige Remotefunkadresse sein.
- Für das serviceClassId Member versucht das System, serviceClassId zu verwenden, um den Remoteport aufzulösen, der dem Dienst entspricht. Die Dienstklasse ist eine normalisierte 128-Bit-GUID, die von der 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.
- Der Port Member muss ein gültiger Remoteport oder null sein, wenn das serviceClassId Member angegeben ist.
In der folgenden Tabelle sind die Ergebniscodes für Bluetooth und die verbinden-Funktion aufgeführt.
Fehler/Fehler# | Beschreibung |
---|---|
WSAEISCONN10056 |
Die verbinden Funktion, die für bereits verbundene Sockets aufgerufen wird. |
WSAEACCES10013 |
Die Verbindung der Anwendung hat die Authentifizierung angefordert, die Authentifizierung ist jedoch fehlgeschlagen. |
WSAENOBUFS10055 |
Nicht behebbarer Out-of-Memory-Fehler. |
WSAEADDRINUSE10048 |
Die angeforderte Port-/Kanalnummer wird verwendet. |
WSAETIMEDOUT10060 |
Der E/A-Timeout auf Bluetooth-Funkebene (PAGE_TIMEOUT). |
WSAEDISCON10101 |
Der RFCOMM-Kanal, der von Remote-Peer getrennt wurde. |
WSAECONNRESET10054 |
Der RFCOMM-Multiplexor (Sitzung) wird vom Remote-Peer getrennt. |
WSAECONNABORTED10053 |
Socket wird nach Anwendung heruntergefahren. |
WSAENETUNREACH10051 |
Fehler außer Timeout auf L2CAP- oder Bluetooth-Funkebene. |
WSAEHOSTDOWN10064 |
Die RFCOMM erhielt DM-Antwort. |
WSAENETDOWN10050 |
Unerwarteter Netzwerkfehler. |
WSAESHUTDOWN10058 |
Der L2CAP-Kanal, der von Remote-Peer getrennt wurde. |
WSAEADDRNOTAVAIL10049 |
Bluetooth-Port/Kanal- oder Geräteadresse ist ungültig. |
WSAEINVAL10022 |
Plug and Play, Driver-Stack-Ereignis oder ein anderer Fehler verursacht einen Fehler. |