В документации почему 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 ответ

Решение

Как правило, после принятия и обработки одного сокета не было бы перерыва: вы будете циклически принимать сокеты бесконечно.

Это глупый пример.

Другие вопросы по тегам