how do i properly send / receive a utf8 string ove...
# announcements
l
how do i properly send / receive a utf8 string over tcp using ktor ? code:
Copy code
fun main() {
	runBlocking {
		val tcpSocketBuilder = aSocket(ActorSelectorManager(<http://Dispatchers.IO|Dispatchers.IO>)).tcp()
		val address = InetSocketAddress("127.0.0.1", 2323)

		launch {
			delay(100)
			println("client: connecting to server")
			val socket = tcpSocketBuilder.connect(address)
			println("client: connected")
			println("client: sending data")
			val writer = socket.openWriteChannel()
			writer.writeStringUtf8("hello world\n")
			println("client: data sent")
			println("client: done")
		}

		val serverSocket = tcpSocketBuilder.bind(address)
		println("server: waiting for connection")
		val client = serverSocket.accept()
		println("server: client received")
		val reader = client.openReadChannel()
		println("server: receiving data")
		val message = reader.readUTF8Line(999)
		println("server: data received: $message")
		println("server: done")
	}
}
output:
Copy code
server: waiting for connection
client: connecting to server
server: client received
client: connected
client: sending data
server: receiving data
client: data sent
client: done
apparently the server gets stuck on receiving the string. why is that and how 2 fix ?
d
Hunch: Close the writer channel.
l
you put me on the right track, i forgot to enable auto-flush for the write channel. ty