[英]How can i read text from socket Kotlin/Android?
马上就说最近开始研究Kotlin,只是想重写一个程序,所以接了这个
我想阅读从传入的 stream 收到的文本,但结果,我得到以下
也许我犯了非常愚蠢的错误,但我几乎不明白它在这里是什么以及它是如何工作的(我读了一半的互联网)
PS我已经尝试过使用它,但程序只是没有进一步 go 就是这样
package com.example.appisone
import java.net.Socket
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.widget.Button
import android.widget.EditText
import android.widget.TextView
import kotlinx.coroutines.*
import java.io.InputStreamReader
import java.util.*
class MainActivity : AppCompatActivity() {
private var Text_Edit: EditText? = null
private var btn: Button? = null
private var Text_view: TextView? = null
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
Text_Edit = findViewById(R.id.EditText)
btn = findViewById(R.id.Button)
Text_view = findViewById(R.id.TextView)
btn?.setOnClickListener {
Text_view?.text = Text_Edit?.text
println("Button is pressed!")
GlobalScope.launch(Dispatchers.IO) {
send_text()
}
}
}
private fun send_text() {
var data: Any
println("send_text is pressed!")
val client = Socket("192.168.0.3", 9090)
val text = Text_Edit?.text.toString()
println(text.toByteArray())
client.getOutputStream().write(text.toByteArray())
val reader = client.getInputStream()
data = reader.toString()
println("Сообщение --- >$data")
}
} ```
Thanks in advance for your wasted time
您不会像这样从Reader
中阅读:
reader.toString()
这只是将Reader
>>object<< 呈现为字符串。 由于toString
尚未被Reader
覆盖,因此您将获得Object::toString
实现。 (它以十六进制打印内部 class 名称和对象的“身份 hash 代码”。)
要从Reader
读取,请使用Reader API中的一种read
方法,或将其包装在Scanner
或BufferedReader
中,以便您可以使用这些 API。
在您的“PS”中,您还在不覆盖 toString() 的 object 上调用 toString()。 根据 class 名称,它看起来像是一个 byte[]。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.