Day 26 Socket的实际应用(二)
昨天我们讲了Socket应用中的python客户端,我们今天继续,我们今天会讲Kotlin的客户端,和两者如何一起使用,并且,我们的Kotlin客户端会在Android Studio作为一个Android程序
使用。
首先且最重要的是,在Manifest.xml中加入下面这行
这是对网路的允许,不加入会报错无法使用
<uses-permission android:name="android.permission.INTERNET" />
我是把Socket独立成一个class,所以我们就先来看我们的class:socket吧!
我们先import读取和socket套件,并且定义写一个run函式,里面会判断我们读到的值是否为空值,若不为空值,就会传我们读到的值。
import java.io.BufferedReader
import java.io.InputStreamReader
import java.net.Socket
class ClientSo(host: String, port: Int) : Socket(host, port) {
var reader = BufferedReader(InputStreamReader(inputStream))
var text = ""
fun run(): String {
val line = reader.readLine()
if(line!= null)
return line
else
return "fail"
}
}
接者我们来看主程序,我们写一个show函式来显示我们的值,并且写一个press绑定到我们的按钮上,当按钮按下,就开启一个新的线程并且呼叫run,最後show出我们的值。
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.view.View
import android.widget.TextView
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
}
val host = "192.168.0.197"
val port = 8001
var sum = ""
fun show(sum:String){
val textView: TextView = findViewById(R.id.textView)
textView.text = sum
}
fun press(@Suppress("UNUSED_PARAMETER")view: View) {
Thread(Runnable {
sum= ClientSo(host, port).run()
}).start()
show(data.toString())
}
}
最後,当然是要看我们两个程序一起运行的结果啦,首先我们先开启我们Python服务器端的程序
接者运行Android程序
在我们按下按钮後,Python服务器端会打印出已连接,我们从Python这边会回一些值给我们的客户端
在我们再次按下按钮後,就会收到我们服务器端传来的值
by CSS Animations- Guide to Cubic Bezier Curves 关...
GenericAPIView 介绍 GenericAPIView 是 APIView 的延伸,它拥有...
这麽优质的店家,当然要推啦~(所以就再补一篇XD) 检查Youtube的影片,发现有漏网之鱼,这样不...
今天介绍一下Yolo v3, 首先在v3中使用了darknet-53的架构,架构如下图: 相比v2的...
欢迎大家,来到了第三天依旧充满干劲,今天要来跟大家介绍Excel的文字格式,以及今天的重点调整栏列的...