Kotlin将inputStream的内容获取到字符串

问题描述

当我连接到服务器(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无效),这将很有帮助。 我还尝试使用带有readText方法的reader,但是它不会返回,而是保持读取/阻塞状态(至少我不知道它如何返回字符串值,它仅在关闭连接时返回)。

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

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

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)