PySide6.QtBluetooth.QBluetoothServer¶
- class QBluetoothServer¶
QBluetoothServer类使用 RFCOMM 或 L2cap 协议与蓝牙设备进行通信。更多…概要¶
方法¶
def
__init__()def
close()def
error()def
isListening()def
listen()def
securityFlags()def
serverAddress()def
serverPort()def
serverType()
信号¶
def
errorOccurred()def
newConnection()
注意
本文档可能包含从C++自动翻译到Python的代码片段。我们始终欢迎对代码片段翻译的贡献。如果您发现翻译问题,您也可以通过在我们的https:/bugreports.qt.io/projects/PYSIDE上创建工单来告知我们。
详细描述¶
QBluetoothServer用于通过RFCOMM或L2cap实现蓝牙服务。开始使用
listen()监听传入的连接。等待直到建立新连接时发出newConnection()信号,并调用nextPendingConnection()以获取新连接的QBluetoothSocket。为了使其他设备能够找到您的服务,创建一个具有适用于您服务的属性的
QBluetoothServiceInfo,并使用registerService()注册它。调用serverPort()以获取正在使用的通道号。如果平台不支持
Protocol,listen()将返回false。例如,Android和WinRT仅支持RFCOMM。在iOS上,这个类无法使用,因为该平台没有暴露一个可能允许访问
QBluetoothServer相关功能的API。- class Error¶
此枚举描述了蓝牙服务器错误类型。
常量
描述
QBluetoothServer.NoError
没有错误。
QBluetoothServer.UnknownError
发生了一个未知错误。
QBluetoothServer.PoweredOffError
蓝牙适配器已关闭。
QBluetoothServer.InputOutputError
发生了输入输出错误。
QBluetoothServer.ServiceAlreadyRegisteredError
服务或端口已被注册
QBluetoothServer.UnsupportedProtocolError
该平台不支持
Protocol。QBluetoothServer.MissingPermissionsError
操作系统请求的权限未被用户授予。
使用
parent和serverType构建一个蓝牙服务器。- close()¶
关闭并重置监听套接字。任何已经建立的
QBluetoothSocket将继续运行,并且必须单独关闭。返回
QBluetoothServer的最后一个错误。当发生
error时,会发出此信号。- hasPendingConnections()¶
- Return type:
布尔
如果连接处于挂起状态,则返回 true,否则返回 false。
- isListening()¶
- Return type:
布尔
如果服务器正在监听传入连接,则返回 true,否则返回 false。
- listen([address=QBluetoothAddress()[, port=0]])¶
- Parameters:
地址 –
QBluetoothAddressport – int
- Return type:
布尔
开始监听
address上的port的传入连接。address必须是本地蓝牙适配器地址,port必须大于零且未被其他蓝牙服务器对象占用。建议避免设置端口号,以便系统自动选择端口。如果操作成功并且服务器正在监听传入连接,则返回
true,否则返回false。如果服务器对象已经在监听传入连接,此函数总是返回
false。在调用此函数之前,应调用close()。- listen(uuid[, serviceName=""])
- Parameters:
uuid –
QBluetoothUuidserviceName – str
- Return type:
警告
本节包含从C++自动翻译到Python的代码片段,可能包含错误。
用于注册具有
uuid和serviceName的SPP服务的便捷函数。由于此函数已经注册了服务,返回的QBluetoothServiceInfo对象不能再更改。要稍后关闭服务器,需要在此服务器对象上调用unregisterService()和close()。如果成功,则返回一个已注册的
QBluetoothServiceInfo实例,否则返回一个无效的QBluetoothServiceInfo。此函数始终假定应使用默认的蓝牙适配器。如果服务器对象已经在监听传入连接,此函数将返回一个无效的
QBluetoothServiceInfo。对于RFCOMM服务器,此函数等同于以下代码片段。
<Code snippet "qbluetoothserver.cpp:listen" not found> <Code snippet "qbluetoothserver.cpp:listen2" not found> <Code snippet "qbluetoothserver.cpp:listen3" not found>
- maxPendingConnections()¶
- Return type:
整数
返回待处理连接的最大数量。
- newConnection()¶
当有新连接可用时,会发出此信号。
连接的槽应该调用
nextPendingConnection()来获取一个QBluetoothSocket对象,以便通过连接发送和接收数据。- nextPendingConnection()¶
- Return type:
返回指向下一个待处理连接的
QBluetoothSocket的指针。调用者有责任删除该指针。返回蓝牙安全标志。
另请参阅
- serverAddress()¶
- Return type:
返回服务器地址。
- serverPort()¶
- Return type:
整数
返回服务器端口号。
返回
QBluetoothServer的类型。- setMaxPendingConnections(numConnections)¶
- Parameters:
numConnections – int
设置待处理连接的最大数量为
numConnections。如果待处理的套接字数量超过此限制,新的套接字将被拒绝。将蓝牙安全标志设置为
security。此函数必须在调用listen()之前调用。使用蓝牙2.1设备时,蓝牙链路将始终加密,因为加密是强制性的。Android 仅支持两种安全级别(安全和非安全)。如果此标志设置为
NoSecurity,服务器对象将不会使用任何身份验证或加密。任何其他安全标志组合都将触发安全的蓝牙连接。在macOS上,不支持安全标志,将被忽略。
另请参阅