Java (Kotlin) Socket Server. Читать постоянно - PullRequest
0 голосов
/ 03 июля 2018

Чтение моего сервера выглядит так:

private fun init() {
        val inStream = BufferedInputStream(socket.getInputStream())
        val bytes = ByteArray(bufferSize)

        outStream = DataOutputStream(socket.getOutputStream())


        while (true) {
            val count = inStream.read(bytes, 0, bufferSize)

            if (count >= 0) {
                server.onReceive(this, bytes, count)
            }

        }
    }

Первое чтение ожидает, пока не будут получены байты. Но второе не ждет. И цикл работает вечно, и число -1. Я хочу читать байты только тогда, когда они получили.

1 Ответ

0 голосов
/ 03 июля 2018

И цикл работает вечно

Вы зацикливаетесь в конце потока. Если count равно -1, вы должны закрыть сокет и выйти из цикла.

и число -1

Именно моя точка зрения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...