当前位置: 代码迷 >> WinCE >> PDA和蓝牙设备验证,连接有关问题
  详细解决方案

PDA和蓝牙设备验证,连接有关问题

热度:33   发布时间:2016-04-28 12:52:04.0
PDA和蓝牙设备验证,连接问题
我用的是bt_api.h 和 btdrt.lib 提供的函数来做蓝牙通讯

  用它所提供的BthNsLookupServiceBegin(),BthLookupServiceNext()可以搜索到我要连接的设备,
 然后用下面的方法去连接设备
SOCKET s = socket(AF_BTH,SOCK_STREAM,BTHPROTO_RFCOMM);
if(s == INVALID_SOCKET)
{
return -1;
}

  SOCKADDR_BTH sa;
memset(&sa,0,sizeof(sa));
sa.addressFamily = AF_BTH;
sa.serviceClassId = Guid; //要连接的蓝牙设备GUID
sa.btAddr = addr;//要连接的蓝牙设备地址
sa.port = channal&0xFF;

int conn = connect(s, (SOCKADDR *)&sa, sizeof(sa));
if (conn != 0)
{
CString s;
s.Format(L"Could not connect socket:error%d\n",WSAGetLastError());
AfxMessageBox(s);
}
else
AfxMessageBox(L"连接成功");
  连接时返回错误代码 10061,蓝牙设备在连接的时候需要进行PIN验证,我这样直接去连接设备是否有问题?
  如果有问题的话,有没人知道该怎么做才能连接上蓝牙设备?

------解决方案--------------------

------解决方案--------------------
不懂,帮顶
------解决方案--------------------
先要配对吧,然后才能用socket
------解决方案--------------------
楼主所说的bt_api.h 和 btdrt.lib我没用过,但是可以肯定的是,蓝牙设备在连接时的PIN码认证是在连接之后产生的,就是说你可以先在从设备用socket连接蓝牙主设备的RFCOMM,主设备收到连接请求后即提出PIN码认证请求。
------解决方案--------------------
通讯有没有建立上是个问题。。。
  相关解决方案