В документации почему BluetoothServerSocket.accept() вызывается в цикле while, если он все равно блокирует поток?
В документации android следующий код встречается в сегменте run() потока:
BluetoothSocket socket = null;
// Keep listening until exception occurs or a socket is returned
while (true) {
try {
socket = mmServerSocket.accept();
} catch (IOException e) {
break;
}
// If a connection was accepted
if (socket != null) {
// Do work to manage the connection (in a separate thread)
manageConnectedSocket(socket);
mmServerSocket.close();
break;
}
}
Однако метод accept() блокирует поток. Поэтому я не понимаю, зачем нужен цикл while(), тем более что во всех возможных ситуациях цикл while прерывается при первом запуске.
Есть идеи?
1 ответ
Решение
Как правило, после принятия и обработки одного сокета не было бы перерыва: вы будете циклически принимать сокеты бесконечно.
Это глупый пример.