Дождитесь ответного сообщения сервера — сопрограмма Kotlin

#android #sockets #kotlin #jobs #kotlin-coroutines

#Android #сокеты #kotlin #Вакансии #kotlin-сопрограммы

Вопрос:

Я использую сокеты для связи и OutputStream.write() для отправки строк на сервер. Обмен данными происходит внутри цикла и имеет задержку.

 CoroutineScope(IO).launch(handler) {
while (!socket.isClosed) {
      val serverText = returnMessageString()
      socket.outputStream.write("S".toByteArray())
      .
      .
      .
      delay(delayTime)
}
  

Когда я получаю определенную строку (скажем, «ОК») Я хочу подождать, пока сервер не отправит мне другую строку, и в это время я ничего не хочу отправлять.

Комментарии:

1. Вы можете добавить условие if, подобное if(serverText=="OK") , и прочитать еще раз, если оно верно.

2. Возможно, но я мог бы повторно отправить запрос до получения ответа (если сервер работал медленно), чего я не хочу. Я вроде как справился с этим с помощью async / await