有没有办法列出Linux中使用RFCOMM的通道?

有没有办法列出Linux中使用RFCOMM的通道?,linux,bluez,pybluez,Linux,Bluez,Pybluez,环境:Ubuntu 14.04在vmplayer中运行 在PyBluez示例rfcomm-server.py中,在任何端口上运行rfcomm服务器都有问题 代码块: from bluetooth import * erver_sock=BluetoothSocket( RFCOMM ) server_sock.bind(("",PORT_ANY)) server_sock.listen(1) 我总是在绑定操作中得到_bluetooth.error:(98,'地址已在使用') 显示为禁用pna

环境:Ubuntu 14.04在vmplayer中运行

在PyBluez示例rfcomm-server.py中,在任何端口上运行rfcomm服务器都有问题

代码块:

from bluetooth import *

erver_sock=BluetoothSocket( RFCOMM )
server_sock.bind(("",PORT_ANY))
server_sock.listen(1)
我总是在绑定操作中得到_bluetooth.error:(98,'地址已在使用')

显示为禁用pnat,它可以工作。我的问题是

  • 在这种情况下,我如何知道哪个服务正在使用RFCOMM通道?有命令列出它们吗

    sdptool浏览本地

  • 不显示频道1正在使用中

  • 在/etc/bluetooth/main.config中禁用pnat后,通道1似乎已释放,我可以毫无问题地运行rfcomm-server.py。然而,即使我通过注释掉行“DisablePlugins=pnat”并再次重新启动蓝牙服务,RFCOMM的通道1也不再被占用
    当前使用的通道可以从
    /sys/kernel/debug/bluetooth/rfcomm
    读取。可以从
    /proc/net/RFCOMM
    读取当前活动的RFCOMM套接字。不幸的是,我找不到任何方法来关联这些条目,即获取特定RFCOMM套接字使用的通道。通过在
    /proc/*/fd/*
    中搜索,可以将套接字inode映射到进程ID。内核目前似乎没有提供可用于收集此信息的netlink sock diag接口。