繁体   English   中英

如何从套接字 Kotlin/Android 读取文本?

[英]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方法,或将其包装在ScannerBufferedReader中,以便您可以使用这些 API。


在您的“PS”中,您还在不覆盖 toString() 的 object 上调用 toString()。 根据 class 名称,它看起来像是一个 byte[]。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM