欢迎来到Doc100.Net免费学习资源知识分享平台!
您的位置:首页 > 程序异常 >

pc机下vc++6.0写的蓝牙服务,手机搜索不到

更新时间: 2014-01-05 02:40:18 责任编辑: Author_N1

 

pc机上VC++6.0写的蓝牙服务,手机搜索不到
最近参照教程在我的电脑上用VC++写了一个关于蓝牙的程序程序。当我在电脑上插上蓝牙适配器后运行程序时,我的手机没法搜索到电脑蓝牙,不知道为什么,请高手指点。谢谢!代码如下:

#include "stdafx.h"
#include <initguid.h>
#include <winsock2.h>
#include <ws2bth.h>
#pragma comment (lib,"ws2_32.lib")
#pragma comment (lib,"msvcrt.lib")

DEFINE_GUID(SAMPLE_UUID,0x31b44148,0x041f,0x42f5,0x8e,0x73,0x18,0x6d,0x5a,0x47,0x9f,0xc9);

int _tmain(int argc, _TCHAR* argv[ ])
{
 SOCKET server;
 SOCKADDR_BTH sa;
 int sa_len = sizeof(sa );

 //initialize windows sockets
 printf("initialize windows sockets...\n");
 WORD wVersionRequested;
 WSADATA wsaData;
 wVersionRequested = MAKEWORD( 2,0 );
 if( WSAStartup( wVersionRequested, &wsaData) !=NO_ERROR ) {
   ExitProcess ( 2 ) ;
  }

 // create the server socket
 printf("create the server socket...\n");
 server = socket (AF_BTH , SOCK_STREAM , BTHPROTO_RFCOMM ) ;
 if( SOCKET_ERROR ==server) {
   ExitProcess ( 2 );
  }

 // bind the server socket to an arbitrary RFCOMM port
 printf("bind the server socket to an arbitrary RFCOMM port...\n");
 sa.addressFamily=AF_BTH;
 sa.btAddr =0;
 sa.port =BT_PORT_ANY ;
 if(SOCKET_ERROR == bind (server ,(const sockaddr*)&sa , sizeof(SOCKADDR_BTH )))
   {
     ExitProcess ( 2 ) ;
    }
 listen( server, 1 );

 // check which port we’re listening on
 printf("check which port we’re listening on...\n");
 if(SOCKET_ERROR==getsockname (server, (SOCKADDR*)&sa, &sa_len )) {
 ExitProcess ( 2 ) ;
 }
 printf("listening on RFCOMM port: %d\n",sa.port);

 // advertise the service
 printf("advertise the service...\n");

 CSADDR_INFO sockInfo ;
 sockInfo.iProtocol=BTHPROTO_RFCOMM;
 sockInfo.iSocketType=SOCK_STREAM;
 sockInfo.LocalAddr.lpSockaddr=(LPSOCKADDR) &sa;
 sockInfo.LocalAddr.iSockaddrLength=sizeof(sa );
 sockInfo.RemoteAddr.lpSockaddr=(LPSOCKADDR) &sa;
 sockInfo.RemoteAddr.iSockaddrLength=sizeof(sa );
 WSAQUERYSET svcInfo={0};
 svcInfo.dwSize=sizeof(svcInfo);
 svcInfo.dwNameSpace=NS_BTH;
 svcInfo.lpszServiceInstanceName="Win32 Sample Bluetooth Service";
 svcInfo.lpszComment="Description of service..." ;
 svcInfo.lpServiceClassId=(LPGUID)&SAMPLE_UUID;
 svcInfo.dwNumberOfCsAddrs =1;
 svcInfo.lpcsaBuffer=&sockInfo;
 if( SOCKET_ERROR ==WSASetService(&svcInfo,RNRSERVICE_REGISTER,0)) 
 {
printf("setService goes wrong...\n");
ExitProcess(2);
 }
 printf("setService goes ok...\n");//程序能够运行到这里来!

 SOCKADDR_BTH ca;
 int ca_len = sizeof(ca);
上一篇:上一篇
下一篇:下一篇

 

随机推荐程序问答结果

 

 

如对文章有任何疑问请提交到问题反馈,或者您对内容不满意,请您反馈给我们DOC100.NET论坛发贴求解。
DOC100.NET资源网,机器学习分类整理更新日期::2014-01-05 02:40:18
如需转载,请注明文章出处和来源网址:http://www.doc100.net/bugs/t/12919/
本文WWW.DOC100.NET DOC100.NET版权所有。