谁能帮我看看,为什么搜索不到蓝牙设备

pig357 2012-04-20 01:57:06
我的操作系统为 XP sp2,thinkpad自带蓝牙功能,使用自带的蓝牙功能能够搜索到附近的蓝牙设备(如手机蓝牙),但自己编程却无法搜索到。各位高手帮我看看有什么问题,程序是在网上找的:
void CBlueToothTestView::OnBnClickedButtonSearchout()
{
m_listout.ResetContent();
CString cs;

// setup windows sockets
WORD wVersionRequested ;
WSADATA wsaData ;
wVersionRequested = MAKEWORD(2,0);
if( WSAStartup( wVersionRequested ,&wsaData )!=0) {
AfxMessageBox(_T("WSAStartup err\n") );
return;
}

// prepare the inquiry data structure
DWORD qslen = sizeof( WSAQUERYSET );
WSAQUERYSET *qs =(WSAQUERYSET* ) malloc( qslen );
ZeroMemory( qs , qslen );
qs->dwSize = sizeof(WSAQUERYSET );
qs->dwNameSpace = NS_BTH ;
DWORD flags = LUP_CONTAINERS ;
flags |= LUP_FLUSHCACHE | LUP_RETURN_NAME | LUP_RETURN_ADDR ;
HANDLE h ;
// start the device inquiry
if( SOCKET_ERROR == WSALookupServiceBegin ( qs , flags ,&h )) {
cs.Format(_T("WSALookupServiceBegin err, code is %d"), WSAGetLastError());
AfxMessageBox(cs);
return;
}
bool done = false ;
while (! done) {
if(NO_ERROR == WSALookupServiceNext (h , flags ,&qslen , qs)) {
char buf[40] = {0};
SOCKADDR_BTH *sa =
(SOCKADDR_BTH* )qs->lpcsaBuffer->RemoteAddr.lpSockaddr ;
BTH_ADDR result = sa->btAddr ;
DWORD bufsize = sizeof(buf );
WSAAddressToString (qs->lpcsaBuffer->RemoteAddr.lpSockaddr ,
sizeof(SOCKADDR_BTH), NULL , (LPTSTR)buf ,&bufsize );
cs.Format(_T("found: %s - %s\n") ,buf , qs->lpszServiceInstanceName );
m_listout.AddString(cs);
} else {
int error = WSAGetLastError ();
if( error == WSAEFAULT ) {
free( qs );
qs =(WSAQUERYSET* ) malloc( qslen );
} else if( error == WSA_E_NO_MORE ) {
AfxMessageBox(_T("inquiry complete\n" ));
done = true ;
} else {
cs.Format(_T( "uh oh. error code %d\n" ), error );
AfxMessageBox(cs);
done = true ;
}
}
}
WSALookupServiceEnd( h );
free( qs );
WSACleanup ();
}
不仅这个程序找不到,我在网上下了些搜索蓝牙的应用程序像bluetoothview.exe和千月也搜索不到,但电脑自带的蓝牙能搜到啊,真的很奇怪。。。不知道哪里的问题
...全文
232 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
pig357 2012-04-21
  • 打赏
  • 举报
回复
2楼的大哥,不行啊,能得到1个结果,但得到的结果不对。
pqs->dwNameSpace :jpy-123 //我电脑的名字
pqs->dwNumberOfProtocols : 12 //好像应该是16(NS_BTH),而不是12(NS_DNS)
pqs->dwNumberOfProtocols: 0

其他属性全为NULL。。。
fishion 2012-04-20
  • 打赏
  • 举报
回复
http://www.winsocketdotnetworkprogramming.com/winsock2programming/winsock2advancednsrnr8c.html
这个呢?还有不是wVersionRequested = MAKEWORD(2,0);别人都用2.2的,你就2.0
pig357 2012-04-20
  • 打赏
  • 举报
回复
在线等,真的很急啊。。。。

18,356

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧