2013-07-16 69 views
2

首先我很抱歉,如果我的英語不是很好,因爲我是法國人。pyBluez python服務器 - 手機沒有看到我的服務器

我是一個初學藍牙開發與pyBluez(我已經知道TCP和UDP套接字),我有一個小問題與服務器。 當我運行下面的代碼時,我的電腦似乎處於偵聽狀態,但是當我的手機(諾基亞xpress音樂5800)試圖檢測到它時,它沒有看到任何東西!

對我來說有兩件令人驚訝的事情: 1)我的代碼中沒有配置像「我的電腦」這樣的名字的功能。也許我的手機找到我的地址,但是,因爲它不能通過lookup_name()函數解析名稱,它認爲我的電腦不在?

2)當我通過serversock.bind(("00:12:34:56:78:9A",PORT_ANY))替換serversock.bind(("",PORT_ANY))其中00:12:34:56:78:9A由hciconfig工具用於我的藍牙設備所提供的地址,我得到: _bluetooth.error: (98, 'Address already in use'

只是一個笨問題,因爲我認爲答案是肯定的,因爲渠道: 是否有可能在同一個藍牙接口上有多個節目收聽。

我在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() 

謝謝

回答

1

檢查服務器的能見度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