code_projects_kotlin/STEP1_Basics/9_Network/Main.kt

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()
}
}