generated from justuser-31/code_projects_template
46 lines
1.1 KiB
Kotlin
46 lines
1.1 KiB
Kotlin
package org.server
|
|
|
|
import com.beust.klaxon.Klaxon
|
|
import java.io.BufferedReader
|
|
import java.io.InputStreamReader
|
|
import java.io.PrintWriter
|
|
import java.net.ServerSocket
|
|
|
|
data class Person(
|
|
val name: String,
|
|
val age: Int,
|
|
val city: String
|
|
)
|
|
|
|
const val serverPort: Int = 12345
|
|
|
|
fun main() {
|
|
val server = ServerSocket(serverPort)
|
|
println("Server started on port $serverPort...")
|
|
|
|
while (true) {
|
|
val client = server.accept()
|
|
println("Client connected: ${client.inetAddress.hostAddress}:${client.port}")
|
|
|
|
val reader = BufferedReader(InputStreamReader(client.getInputStream()))
|
|
val writer = PrintWriter(client.getOutputStream(), true)
|
|
|
|
val rawReceived = reader.readLine()
|
|
//println("Received from client: $received")
|
|
val json = Klaxon().parse<Person>(rawReceived)
|
|
println("""
|
|
|
|
Parsed data:
|
|
name: ${json?.name}
|
|
age: ${json?.age}
|
|
city: ${json?.city}
|
|
|
|
""".trimIndent())
|
|
|
|
val response = "OK"
|
|
writer.println(response)
|
|
|
|
client.close()
|
|
}
|
|
}
|