(kotlin新手求助)
我在onEnable中初始化了并监听了一个ServerSocket,想要在onDisable函数中关闭它,但是失败了
报错大概信息如下:
MIRAI CONSOLE CRASH REPORT.
Console has take too long to shutdown.
我的onDisable函数是这么写的
override fun onDisable() {
logger.info { "准备关闭socket" }
serverToClose?.close()
}
注:
serverToClose的初始化操作如下:
PluginMain.launch {
try {
println("Socket服务器开始运行...")
val serverSocket = ServerSocket(12345)
serverSocketToClose = serverSocket
while (true) {
val socket = serverSocket.accept()
println("接受了一个socket链接")
Thread(ServerHandler(socket)).start()
}
} catch (e: Exception) {
e.printStackTrace()
}
}
但是在“准备关闭socket”这句话输出前就已经报错了,也就是我貌似无法在onDisable中关闭ServerSocket以及试图退出while循环
不知道应该怎么在mcl退出时,关闭之前的ServerSocket以及while循环,从而正常退出mcl。
求大佬指点