我真的很想通过 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),但发现很难弄清楚什么去做
任何帮助深表感谢
您可以执行以下操作:
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)
客户端将向服务器发送一条消息,然后收到响应,程序将结束。