蓝牙和绑定

蓝牙使用 bind 函数绑定到套接字。 要绑定蓝牙套接字,请使用 SOCKADDR_BTH 结构调用 bind 函数。 使用包含以下设置的 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;使用 BT_PORT_ANY 自动分配的端口可以通过调用 getsockname 函数来查询。 请求特定 RFCOMM 端口的有效范围是 1 到 30。 服务器通道是全局资源,任何蓝牙设备上只有 30 个服务器通道可供 RFCOMM 使用,它们必须由属于蓝牙地址系列的所有 Windows 套接字共享。 如果没有可用的服务器通道,或者指定的服务器通道已被保留,则 bind 调用失败。

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

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

bind 函数不会使用蓝牙 SDP 自动播发服务器应用程序;应用程序必须调用 WSASetService 函数才能被远程蓝牙应用程序发现。

Windows 套接字

bind