python - pyBluez python 服务器 - 手机看不到我的服务器

标签 python sockets bluetooth nokia bluez

首先,如果我的英语不是很好,我很抱歉,因为我是法国人。

我是使用 pyBluez 进行蓝牙开发的初学者(我已经知道 TCP 和 UDP 套接字),我的服务器有点问题。 当我运行下面的代码时,我的电脑似乎处于聆听状态,但是当我的手机(nokia xpress music 5800)尝试检测它时,它什么也没看到!

有两件事让我感到惊讶: 1)我的代码中没有配置像“我的电脑”这样的名称的功能。也许我的手机找到了我的地址,但是,因为它无法通过 lookup_name() 之类的函数解析名称,所以它认为我的电脑没有开机?

2) 当我将 serversock.bind(("",PORT_ANY)) 替换为 serversock.bind(("00:12:34:56:78:9A",PORT_ANY )) 其中 00:12:34:56:78:9A 是 hciconfig 工具为我的蓝牙设备提供的地址,我得到: _bluetooth.error: (98, '地址已在使用中'

只是一个愚蠢的问题,因为我认为答案是肯定的,因为 channel : 是否可以让多个程序在同一个蓝牙接口(interface)上监听。

我在 root 上运行程序

from bluetooth import *
serversock=BluetoothSocket(RFCOMM)
serversock.bind(("",PORT_ANY))
serversock.listen(1)
advertise_service(serversock,"SampleServer",service_classes = [ SERIAL_PORT_CLASS ],profiles = [ SERIAL_PORT_PROFILE ] )
clientsock,clientinfo = serversock.accept()
print "Accepted connection from " , clientinfo
clientsock.send("PyBluez server says Hello!! ")
data = clientsock.recv(1024)
print "received: " , data
clientsock.close()
serversock.close()

谢谢

最佳答案

使用 hciconfig 检查服务器的可见性:

# hciconfig

hci0:   Type: USB
    BD Address: 00:11:22:12:34:56 ACL MTU: 192:8  SCO MTU: 64:8
    UP RUNNING PSCAN ISCAN
    RX bytes:296 acl:0 sco:0 events:26 errors:0
    TX bytes:536 acl:0 sco:0 commands:22 errors:0

如果您的本地设备不可见,请通过以下方式设置可见性:

hciconfig hci0 piscan

如果需要,关闭可见性:

hciconfig hci0 noscan

关于python - pyBluez python 服务器 - 手机看不到我的服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17675516/

相关文章:

python - FormEncode、pylons 和 mako 示例

c - 我向不存在的IP发送tcp syn数据包,但没有得到响应

c++ - 我应该通过套接字以一次读\写还是多个 block 的方式发送文件?

c - 从 arduino 上传入的蓝牙序列中提取值

c# - 同时建立多个蓝牙SPP

android - 清除android中的蓝牙名称缓存

python - 如何提取关键字和日期前后的文本

python - 为什么 KeyboardInterrupt 在 python 中不起作用?

python - 用泊松函数拟合直方图

java - Java中客户端如何知道服务器何时等待数据?