连接期间WinCE:10053错误

时间:2011-11-11 22:20:58

标签: bluetooth windows-ce

我为wince 4.2设备写了一个蓝牙客户端程序。设备发现工作正常。但是,当我尝试连接到PC时,connect函数会立即返回错误代码10053。 PC正在处理连接请求,提示输入验证码但wince设备似乎没有等待。

可能导致此问题的原因是什么?我使用以下步骤(为简单起见,删除了错误处理):

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进行身份验证的消息。

1 个答案:

答案 0 :(得分:0)

根据您的描述,它看起来像配对/身份验证问题。您还应该考虑使用setsockopt函数:http://msdn.microsoft.com/en-us/library/ms863347.aspx

您应该尝试使用SO_BTH_AUTHENTICATE选项,根据MSDN:

  

在连接的套接字上,触发身份验证。在未连接的套接字上,强制连接身份验证。对于传入连接,这意味着如果无法执行身份验证,则会拒绝连接。

因此,在调用connect函数之前,您应该为套接字设置选项。