#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