def _init_server(self):
# find our Bluetooth address
self.bt_addr = self._find_local_bdaddr()
self.bt_addr_queue.put(None)
# find a free port; PORT_ANY does not seem to work correctly
port_available = False
server_sock = BluetoothSocket(RFCOMM)
for port in range(1, 10):
try:
server_sock.bind((self.bt_addr, port))
port_available = True
break
except Exception as e: # IOError does not seem to catch the right exception
if e[0] == errno.EADDRINUSE:
pass
else:
raise e
if not port_available:
print 'No free bluetooth port found'
return None
server_sock.listen(1)
port = server_sock.getsockname()[1]
advertise_service( server_sock, self.service_desc
, service_id = self.service_uuid
, service_classes = [ self.service_uuid ]
, profiles = [ ]
)
return server_sock
评论列表
文章目录