蓝牙套接字无入站连接
我在我的电脑上用Python开发了一个HIDServer(蓝牙键盘)。这个服务器有两个监听连接的端口(psm 0x11和0x13)。当我尝试把我的iPhone连接到电脑时,我能看到有连接请求(在hcidump中可以看到),但连接却被远程主机终止了。我的服务器从来没有成功接受到客户端的连接。你能帮我一下吗?
hcidump记录:
程序启动后:
HCI事件:命令完成(0x0e)数据长度4 写入扩展查询响应(0x03|0x0052)命令数1 状态0x00
尝试连接iPhone时:
HCI事件:连接请求(0x04)数据长度10 蓝牙地址60:D9:C7:23:96:FF 类别0x7a020c 类型ACL
HCI事件:命令状态(0x0f)数据长度4 接受连接请求(0x01|0x0009)状态0x00 命令数1
HCI事件:连接完成(0x03)数据长度11 状态0x00 句柄11 蓝牙地址60:D9:C7:23:96:FF 类型ACL 加密0x00
HCI事件:命令状态(0x0f)数据长度4 读取远程支持的功能(0x01|0x001b)状态0x00 命令数1
HCI事件:读取远程支持的功能(0x0b)数据长度11 状态0x00 句柄11 功能:0xbf 0xfe 0xcf 0xfe 0xdb 0xff 0x7b 0x87
HCI事件:命令状态(0x0f)数据长度4 读取远程扩展功能(0x01|0x001c)状态0x00 命令数1
HCI事件:读取远程扩展功能(0x23)数据长度13 状态0x00 句柄11 页码1 最大2 功能:0x07 0x00 0x00 0x00 0x00 0x00 0x00 0x00
HCI事件:命令状态(0x0f)数据长度4 远程名称请求(0x01|0x0019)状态0x00 命令数1
HCI事件:远程名称请求完成(0x07)数据长度255 状态0x00 蓝牙地址60:D9:C7:23:96:FF 名称'iPhone'
HCI事件:命令完成(0x0e)数据长度10 链接密钥请求回复(0x01|0x000b)命令数1 状态0x00 蓝牙地址60:D9:C7:23:96:FF
HCI事件:加密变化(0x08)数据长度4 状态0x00 句柄11 加密0x01
HCI事件:断开连接完成(0x05)数据长度4 状态0x00 句柄11 原因0x13 原因:远程用户终止了连接
1 个回答
在我的程序中,最开始设置设备的类别并没有成功,因为它会被重置。为了让HIDServer在blueZ上正常工作,我必须在等待连接之前再设置一次设备的类别。我不知道为什么它会被重置,但我知道确实会发生这种情况。也许其他人能告诉我原因。