我一直在研究 windows wdf 示例中的蓝牙回声服务器示例。我想了解l2cap bt驱动程序的实现,但我还是有点困惑。
下面我列出了示例中的代码。
在这里,我们有一个 GUID 和一个由 bt 服务器开发者发布的服务的名称。如果客户端想要连接到服务器,它必须知道该信息。
//
// Service GUID and name for the service published by our bth server device
//
/* c07508f2-b970-43ca-b5dd-cc4f2391bef4 */
DEFINE_GUID(BTHECHOSAMPLE_SVC_GUID, 0xc07508f2, 0xb970, 0x43ca, 0xb5, 0xdd, 0xcc, 0x4f, 0x23, 0x91, 0xbe, 0xf4);
extern __declspec(selectany) const PWSTR BthEchoSampleSvcName =L"BthEchoSampleSrv";
//
// Device interface exposed by our bth client device
//
/* fc71b33d-d528-4763-a86c-78777c7bcd7b */
DEFINE_GUID(BTHECHOSAMPLE_DEVICE_INTERFACE, 0xfc71b33d, 0xd528, 0x4763, 0xa8, 0x6c, 0x78, 0x77, 0x7c, 0x7b, 0xcd, 0x7b);
以下是客户端连接到服务器的方式:
DWORD err = GetDevicePath((LPGUID)&BTHECHOSAMPLE_DEVICE_INTERFACE, &devicePath);
if (ERROR_SUCCESS != err) {
printf("Failed to find the BTHECHO device\n");
exit(1);
}
hDevice = CreateFile(devicePath,
GENERIC_READ|GENERIC_WRITE,
FILE_SHARE_READ | FILE_SHARE_WRITE,
NULL,
OPEN_EXISTING,
0,
NULL );
我的问题是:如果我有一部手机或平板电脑,并且可以使用 WSALookupServiceXXXX 从我的 bt 列表设备中选择它怎么办。如何仍然使用或连接到 l2cap 驱动程序?如果我是客户端,如何获取外部服务器设备的 GUID?反之,客户端如何知道服务器的 GUID 服务器?GUID 和服务类 ID(bt 配置文件)是两个不同的东西,不是吗?
最好的,