次の方法で共有


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 ソケット

接続

SOCKADDR_BTH