From 20c2648d8aca56cf8bf9fabe4de5fa8b509d4e56 Mon Sep 17 00:00:00 2001 From: Naotiki Date: Wed, 24 May 2023 21:56:17 +0900 Subject: [PATCH] Fix Socket Close --- client-app/src/main/kotlin/server/Server.kt | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/client-app/src/main/kotlin/server/Server.kt b/client-app/src/main/kotlin/server/Server.kt index dc81486..19c4781 100644 --- a/client-app/src/main/kotlin/server/Server.kt +++ b/client-app/src/main/kotlin/server/Server.kt @@ -9,6 +9,7 @@ import kotlinx.serialization.decodeFromByteArray import java.io.DataInputStream import java.net.ServerSocket import java.net.Socket +import java.net.SocketException import java.nio.ByteBuffer class Server(val port: Int=PORT) { val serverSocket = ServerSocket(port) @@ -16,9 +17,15 @@ class Server(val port: Int=PORT) { suspend fun runServer()= withContext(Dispatchers.IO){ suspendCancellableCoroutine { it.invokeOnCancellation { serverSocket.close() } - while (it.isActive){ - val socket=serverSocket.accept() - ServerThread(socket).start() + runCatching { + while (it.isActive){ + val socket=serverSocket.accept() + ServerThread(socket).start() + } + }.onFailure { throwable -> + if (throwable is SocketException){ + throwable.printStackTrace() + }else throw throwable } println("Server Shutdown") }