通过 TCP 端口发送简单消息

cry*_*use 1 tcp kotlin

我真的很想通过 tcp 发送一条非常简单的消息,让两个 kotlin 程序(服务器和客户端)相互通信,相互发送短字符串。

我有一个非常简单的服务器代码:

fun main(args : Array<String>) {
    val server = ServerSocket(5000)
    println("Server is running on port ${server.localPort}")

    val socket = server.accept()

    print("connected to client: "+ socket.inetAddress.toString())   
    val text = BufferedReader(InputStreamReader(socket.inputStream)).readLine()
}
Run Code Online (Sandbox Code Playgroud)

这对于客户来说:

fun main(args: Array<String>) {
    val socket = Socket("localhost", 5000)

    PrintWriter(socket.outputStream, true).write("text")
}
Run Code Online (Sandbox Code Playgroud)

我的想法是,我首先运行服务器,然后运行客户端,然后从客户端向服务器发送一些消息(也可能相反)。我现在尝试从本教程中获取当前的内容(https://sylhare.github.io/2020/04/07/Kotlin-tcp-socket-example.html),但发现很难弄清楚什么去做

任何帮助深表感谢

Syl*_*are 7

您可以执行以下操作:

服务器
fun server() {
    val server = ServerSocket(9999)
    val client = server.accept()
    val output = PrintWriter(client.getOutputStream(), true)
    val input = BufferedReader(InputStreamReader(client.inputStream))

    output.println("${input.readLine()} back")
}
Run Code Online (Sandbox Code Playgroud)
客户
fun client() {
    val client = Socket("127.0.0.1", 9999)
    val output = PrintWriter(client.getOutputStream(), true)
    val input = BufferedReader(InputStreamReader(client.inputStream))

    println("Client sending [Hello]")
    output.println("Hello")
    println("Client receiving [${input.readLine()}]")
    client.close()
}
Run Code Online (Sandbox Code Playgroud)
一起奔跑

要同时运行两者:

fun main() {
    Thread{ server() }.start()
    client()
}
Run Code Online (Sandbox Code Playgroud)

客户端将向服务器发送一条消息,然后收到响应,程序将结束。