2011-11-11 42 views
0

wince 4.2デバイス用のBluetoothクライアントプログラムを作成しました。デバイスの検出は正常に動作します。しかし、私はPCに接続しようとすると、すぐにエラーコード10053で接続関数が返されます。認証コードを入力するプロンプトが表示された状態で、接続要求がPCによって処理されていましたが、winceデバイスは待機していないようです。WinCE:接続中に10053エラーが発生しました

この問題の原因は何ですか?

WSAStartup(..)…////was successful. 

SOCKET m_Socket =Socket (AF_BTH, SOCK_STREAM, BTHPROTO_RFCOMM); //was successful. 

SOCKADDR_BTH sClinet; 
memset (&sClinet, 0, sizeof(sClinet)); 
sClinet.addressFamily = AF_BTH; 
sClinet.btAddr = btd.btaddr; ; //BT_ADDR of the PC obtained via Device Discovery.. 
sClinet.port = BT_PORT_ANY; //I did try 0, did not help! 
sClinet.serviceClassId = RFCOMM_PROTOCOL_UUID; 

int nConErr = connect (m_Socket, (SOCKADDR *)&sClinet, sizeof(sClinet)); 

nConErr戻ってすぐに10053:私は、次の手順(簡略化のために取り除かエラー処理)を使用しています。 PCが接続を認識し、認証のためにPINを入力するように促すメッセージを表示したにもかかわらず、それは待っていません。

答えて

0

あなたが説明していることは、ペアリング/認証の問題のようです。認証をトリガし、接続されたソケットに

http://msdn.microsoft.com/en-us/library/ms863347.aspx

あなたがMSDNによるとSO_BTH_AUTHENTICATEオプションを使用するようにしてください:あなたはまた、setsockopt機能を使用して検討すべきです。接続されていないソケットでは、接続時に認証を強制します。着信接続の場合、これは、認証が実行できない場合に接続が拒否されることを意味します。

したがって、connect関数を呼び出す前に、オプションをソケットに設定する必要があります。

関連する問題