蓝牙 Socket 没有传入连接

Posted

技术标签:

【中文标题】蓝牙 Socket 没有传入连接【英文标题】:Bluetooth Socket no incoming connection 【发布时间】:2014-07-08 12:25:18 【问题描述】:

我在我的电脑上用 python 开发了一个 HIDServer(蓝牙键盘)。有 2 个 Serversocket(psm 0x11 和 0x13)正在监听连接。 当我尝试将我的 iPhone 连接到我的计算机时,我收到了一个传入连接(可以在 hcidump 中看到),但不知何故,连接被远程主机终止了。我的套接字永远不会接受客户端连接。你能帮帮我吗?

hcidumps:

启动我的程序后:

HCI 事件:命令完成 (0x0e) plen 4 写入扩展查询响应 (0x03|0x0052) ncmd 1 状态 0x00

尝试连接 iPhone 时:

HCI 事件:连接请求 (0x04) plen 10 bdaddr 60:D9:C7:23:96:FF 类 0x7a020c 类型 ACL

HCI 事件:命令状态 (0x0f) plen 4 接受连接请求 (0x01|0x0009) 状态 0x00 ncmd 1

HCI 事件:连接完成 (0x03) plen 11 状态 0x00 句柄 11 bdaddr 60:D9:C7:23:96:FF 类型 ACL 加密 0x00

HCI 事件:命令状态 (0x0f) plen 4 读取远程支持的功能 (0x01|0x001b) 状态 0x00 ncmd 1

HCI 事件:读取远程支持的功能 (0x0b) plen 11 状态 0x00 句柄 11 特征:0xbf 0xfe 0xcf 0xfe 0xdb 0xff 0x7b 0x87

HCI 事件:命令状态 (0x0f) plen 4 读取远程扩展功能 (0x01|0x001c) 状态 0x00 ncmd 1

HCI 事件:读取远程扩展功能 (0x23) plen 13 状态 0x00 句柄 11 第 1 页最大 2 特征:0x07 0x00 0x00 0x00 0x00 0x00 0x00 0x00

HCI 事件:命令状态 (0x0f) plen 4 远程名称请求 (0x01|0x0019) 状态 0x00 ncmd 1

HCI 事件:远程名称请求完成 (0x07) plen 255 状态 0x00 bdaddr 60:D9:C7:23:96:FF 名称 'iPhone'

HCI 事件:命令完成 (0x0e) plen 10 链接密钥请求回复 (0x01|0x000b) ncmd 1 状态 0x00 bdaddr 60:D9:C7:23:96:FF

HCI 事件:加密更改 (0x08) plen 4 状态 0x00 句柄 11 加密 0x01

HCI 事件:Disconn Complete (0x05) plen 4 状态 0x00 句柄 11 原因 0x13 原因:远程用户终止连接

【问题讨论】:

【参考方案1】:

首先在我的程序中设置设备类别不起作用,因为它被重置了。为了让 HIDServer 在 blueZ 上工作,我必须在等待连接之前设置设备类别。我不能说它为什么会被重置,但我知道它会。也许其他人可以说出原因。

【讨论】:

以上是关于蓝牙 Socket 没有传入连接的主要内容,如果未能解决你的问题,请参考以下文章

winsock:蓝牙客户端-服务器未连接

Android-蓝牙传输

如何通过传入连接将手机与计算机连接?

蓝牙BluetoothAdapter

没有通过蓝牙收到 EA 通知

使用 C++ 在 Windows 上建立蓝牙连接(出现错误 10060)