蓝牙和绑定

蓝牙使用 绑定 函数绑定到套接字。 若要绑定蓝牙套接字,请使用 SOCKADDR_BTH 结构调用 绑定 函数。 使用以下设置使用 SOCKADDR_BTH 结构:

name.addressFamily = AF_BTH;
name.btAddr = 0;
name.serviceClassId = GUID_NULL;
name.port = number of service channel, 0 or BT_PORT_ANY;

在客户端应用程序上,端口成员必须为零,才能分配适当的本地终结点。 在服务器应用程序中,端口成员必须是有效的端口号或BT_PORT_ANY;随后可以通过调用 getsockname 函数来查询使用 BT_PORT_ANY 自动分配的端口。 请求特定 RFCOMM 端口的有效范围为 1 到 30。 服务器通道是全局资源,任何蓝牙设备上的 RFCOMM 只能使用 30 个服务器通道,这些通道必须由属于蓝牙地址系列的所有 Windows 套接字共享。 如果没有服务器通道可用,或者指定的服务器通道已保留,则 绑定 调用失败。

成功从绑定返回后,将保留服务器通道,直到套接字关闭。 使用 getsockname 函数检索 SDP 注册的通道号。

应用程序应对服务器通道使用自动分配。

绑定 函数不会使用蓝牙 SDP 自动播发服务器应用程序;应用程序必须调用 WSASetService 函数才能由远程蓝牙应用程序找到。

Windows 套接字

绑定