В настоящее время у меня есть пара клиент / сервер, закодированная против PyBlueZ.Прямо сейчас сервер может подключаться к последовательным клиентам - он будет работать до тех пор, пока не будет завершен с клиентом, затем он начнет прослушивание другого клиента.
Однако, что я действительно хочу, так это запустить взаимодействие клиента в отдельных потокахУ меня есть несколько клиентов одновременно.Однако когда я пытаюсь подключиться ко второму клиенту, PyBlueZ объявляет тот же порт, который используется первым клиентом.Я устанавливаю соединения следующим образом:
self.port = bluetooth.PORT_ANY
print "Accepting clients..."
self.server_sock=bluetooth.BluetoothSocket( bluetooth.RFCOMM )
self.server_sock.bind(("",self.port))
self.server_sock.listen(5)
print "listening on port %d" % self.port
bluetooth.advertise_service( self.server_sock, MY_SERVICE, MY_UUID )
client_sock,address = self.server_sock.accept()
print "Accepted connection from ",address
commThread = ServerThread(client_sock, self.bn_id, self.bn_name, self.bn_thumbnail)
Опять же, этот код отлично работает для последовательных соединений, но когда я пытаюсь сделать это параллельно, мой клиент получает ответ «занято» от системы bluetooth сервера.На стороне клиента я вывожу порт, к которому он пытается подключиться, и он всегда показывает порт "1".
Есть ли ограничение в PyBlueZ, которое допускает только одно соединение?Или я что-то не так делаю для параллельных соединений?