Android Kotlin将inputStream的内容获取为字符串

Android Kotlin将inputStream的内容获取为字符串,android,kotlin,tcp,client,kotlin-coroutines,Android,Kotlin,Tcp,Client,Kotlin Coroutines,当我连接到服务器(TCP)时,我希望以字符串形式存储收到的消息。 我尝试了read(),但它只读取一个字符并返回ASCII值 job = CoroutineScope(IO).launch { socket = Socket("192.168.0.11", 4000); while(socket.isConnected){ socket.outputStream.write("Hello from the client!".

当我连接到服务器(TCP)时,我希望以字符串形式存储收到的消息。 我尝试了read(),但它只读取一个字符并返回ASCII值

job = CoroutineScope(IO).launch {
    socket = Socket("192.168.0.11", 4000);
    while(socket.isConnected){
        socket.outputStream.write("Hello from the client!".toByteArray());
        var text : String = socket.inputStream.read().toString()
        Log.d("debug ", " result $text")
        delay(2000)
     }
}
如果我至少可以知道服务器何时停止发送字符,那么使用null进行相等是不起作用的,这会很有帮助的。 我还尝试使用reader with readText方法,但它不返回,只是继续读取/阻塞(至少我不知道它如何返回字符串值,它只在关闭连接时返回)

现在,我只想从服务器接收一个字符串并将其记录到控制台。服务器在我发送请求后返回消息

val text = socket.inputStream.reader().use { reader ->  
    reader.readText()
}