在XP下可以通过MSDN里面的about Bluetooth 可以枚举并且通讯(如果需要资料可以去VCKBASE里面寻找谢红伟的BLUETOOTH)在WINCE下可以通过 WSALookupServiceBegin, Sockets 进行通讯但是我有一个疑问
1  蓝牙设备是虚拟成串口,如果主机用Winsocket进行连接通讯 会连接成功并且通讯吗?(如何设置通讯速率 之类的参数呢?)实际工作中的问题
我用WSALookupServiceBegin等函数寻找到了蓝牙设备的(地址,名称和GUID),然后用CONNECT就怎么也连接不上设备
但是用XP的系列函数就可以成功的连接上设备(XP下是用createfile 打开串口的)

解决方案 »

  1.   

    更正下我的提问
    先说下我的环境配置(必须是XP和WINCE同时支持)
      1 XP SP2 + USB 蓝牙(Bluetooth Radios (电脑USB口接的蓝牙(我称之为蓝牙Radio))) + R232-蓝牙(一个蓝牙设备)
    下面的是简单介绍
      蓝牙设备是虚拟成COM口的蓝牙设备问题
      1  如果蓝牙RADIO 这边的程序以Socket方式 连接蓝牙设备 会连接成功吗? 如果可以连接成功请说下大概步骤和连接方法
         我这里是用CONNECT连接 一直失败  2  如何获取 蓝牙设备虚拟出来的串口号呢?(WINCE下也需要支持)
       
      
      

  2.   


    问题
      1  如果蓝牙RADIO 这边的程序以Socket方式 连接蓝牙设备 会连接成功吗? 如果可以连接成功请说下大概步骤和连接方法
        我这里是用CONNECT连接 一直失败
    答: 你的bluetooth,支持socket么?不支持,怎么能用socket进行TCP/IP互联呢?  2  如何获取 蓝牙设备虚拟出来的串口号呢?(WINCE下也需要支持) 
    答:虚拟出串口,可以用CreateFile来访问设备。
      

  3.   


    首先先谢谢wenxy1的热心回复
      但是我还是有点疑问
     1  WINCE 下面可以通过RegisterDevice注册COM口
    但是XP下 PORTEMUPortParams这个参数找不到定义
    2 蓝牙设备每次都会被映射成COM25 如果我主蓝牙注册一个COM口 如何和从蓝牙进行沟通呢?再次感谢 wenxy1
      

  4.   

    PORTEMUPortParams pp;
    TCHAR szCommPort[6];
    unsigned char nChannel = 0xfe; //系统选择一个可用的通道
    memset (&pp, 0, sizeof (pp));
    pp.channel = nChannel & 0xff;
    pp.flocal = TRUE;
    for (i = 9; i >= 0; i--) 
    {
        m_hDevice = RegisterDevice (L"COM", i, L"btd.dll", (DWORD)&pp);
        if (m_hDevice != 0)
            break;
      

  5.   

    现在最大的疑问是如何获取蓝牙设备映射到系统中的串口号,例如我的系统是映射为COM25