Bluetoothして接続する
Bluetoothは、connect 関数を使用して、以前に作成したBluetooth ソケットを使用してターゲット Bluetooth デバイスに接続します。 SOCKADDR_BTH 構造体である connect 関数の 名 パラメーターには、ターゲット Bluetooth デバイスを指定する必要があります。 ターゲット デバイスを識別するには、次の 2 つのメカニズムが使用されます。
- SOCKADDR_BTH 構造体では、接続が要求されるポート番号を直接指定できます。 このメカニズムでは、接続操作を試行する前に、アプリケーションで独自の SDP クエリ 実行する必要があります。
- SOCKADDR_BTH 構造体では、接続先のサービスの一意のサービス クラス ID を指定できます。 ピア デバイスにサービス クラス ID に対応するポートが複数ある場合、接続 関数呼び出しは最初の有効なサービスに接続します。 このメカニズムは、以前の SDP クエリなしで使用できます。
connect 関数で SOCKADDR_BTH 構造体を使用する場合は、次の要件が適用されます。
- btAddr メンバーは、有効なリモート 無線アドレスである必要があります。
- serviceClassId メンバーの場合、ポート メンバーが 0 の場合、システムは serviceClassId 使用して、サービスに対応するリモート ポートを解決しようとします。 サービス クラスは、Bluetooth仕様で定義された正規化された 128 ビット GUID です。 共通 GUID は、Bluetooth割り当て番号ドキュメントによって定義されます。 または、ドメイン固有のアプリケーションに一意の GUID を使用することもできます。
- ポート メンバーは、有効なリモート ポートである必要があります。serviceClassId メンバーが指定されている場合は 0 である必要があります。
次の表に、Bluetoothと connect 関数の結果コードを示します。
エラー/エラー# | 形容 |
---|---|
WSAEISCONN10056 |
接続 既に接続されているソケットに対して呼び出される関数です。 |
WSAEACCES10013 |
アプリケーションの接続で認証が要求されましたが、認証に失敗しました。 |
WSAENOBUFS10055 |
回復不能なメモリ不足エラー。 |
WSAEADDRINUSE10048 |
要求されたポート/チャネル番号が使用中です。 |
WSAETIMEDOUT10060 |
I/O がBluetooth無線レベル (PAGE_TIMEOUT) でタイムアウトしました。 |
WSAEDISCON10101 |
リモート ピアによって切断された RFCOMM チャネル。 |
WSAECONNRESET10054 |
リモート ピアによって切断された RFCOMM マルチプレクサー (セッション)。 |
WSAECONNABORTED10053 |
アプリケーションによってソケットがシャットダウンされました。 |
WSAENETUNREACH10051 |
L2CAP または Bluetooth 無線レベルでのタイムアウト以外のエラー。 |
WSAEHOSTDOWN10064 |
RFCOMM は DM 応答を受信しました。 |
WSAENETDOWN10050 |
予期しないネットワーク エラー。 |
WSAESHUTDOWN10058 |
リモート ピアによって切断された L2CAP チャネル。 |
WSAEADDRNOTAVAIL10049 |
Bluetoothポート/チャネルまたはデバイス アドレスが無効です。 |
WSAEINVAL10022 |
プラグ アンド プレイ、ドライバー スタック イベント、またはその他のエラーが原因でエラーが発生しました。 |
関連トピック
-
Windows ソケット の