commit 06/10/2025

This commit is contained in:
2025-10-06 08:30:09 +07:00
parent 20dbc12b02
commit cf69c72f3c
9 changed files with 97 additions and 81 deletions

View File

@@ -27,8 +27,8 @@ import kotlin.io.path.absolutePathString
@Suppress("unused")
class TCP_Android_Command_Server {
private var tcpserver: ServerSocket? = null
private var job: Job? = null
lateinit var tcpserver: ServerSocket
lateinit var job: Job
private val socketMap = mutableMapOf<String, Socket>()
lateinit var logcb: Consumer<String>
private val listUserLogin = mutableListOf<userLogin>()
@@ -46,13 +46,13 @@ class TCP_Android_Command_Server {
val tcp = ServerSocket(port)
tcpserver = tcp
job = CoroutineScope(Dispatchers.IO).launch {
Logger.info { "TCP server started" }
Logger.info { "TCP Android server started on port $port" }
while (isActive) {
if (tcpserver?.isClosed == true) break
if (tcpserver.isClosed) break
try {
tcpserver?.accept().use { socket ->
tcpserver.accept().use { socket ->
{
CoroutineScope(Dispatchers.Main).launch {
CoroutineScope(Dispatchers.IO).launch {
if (socket != null) {
// key is IP address only
val key: String = socket.inetAddress.hostAddress
@@ -416,20 +416,18 @@ class TCP_Android_Command_Server {
*/
fun StopTcpCommand(): Boolean {
try {
tcpserver?.close()
tcpserver.close()
runBlocking {
socketMap.values.forEach {
it.close()
}
socketMap.clear()
job?.join()
job.join()
}
Logger.info { "StopTcpCommand success" }
return true
} catch (e: Exception) {
Logger.error { "Failed to StopTcpServer, Message : ${e.message}" }
} finally {
tcpserver = null
}
return false
}

View File

@@ -14,8 +14,8 @@ import java.util.function.Consumer
@Suppress("unused")
class TCP_PC_Command_Server {
private var tcpserver: ServerSocket? = null
private var job: Job? = null
lateinit var tcpserver: ServerSocket
lateinit var job: Job
private val socketMap = mutableMapOf<String, Socket>()
/**
@@ -31,11 +31,11 @@ class TCP_PC_Command_Server {
job = CoroutineScope(Dispatchers.IO).launch {
Logger.info { "TCP server started" }
while (isActive) {
if (tcpserver?.isClosed == true) break
if (tcpserver.isClosed) break
try {
tcpserver?.accept().use { socket ->
tcpserver.accept().use { socket ->
{
CoroutineScope(Dispatchers.Main).launch {
CoroutineScope(Dispatchers.IO).launch {
if (socket != null) {
val key : String = socket.inetAddress.hostAddress+":"+socket.port
socketMap[key] = socket
@@ -81,20 +81,18 @@ class TCP_PC_Command_Server {
*/
fun StopTcpCommand(): Boolean {
try {
tcpserver?.close()
tcpserver.close()
runBlocking {
socketMap.values.forEach {
it.close()
}
socketMap.clear()
job?.join()
job.join()
}
Logger.info { "StopTcpCommand success" }
return true
} catch (e: Exception) {
Logger.error { "Failed to StopTcpServer, Message : ${e.message}" }
} finally {
tcpserver = null
}
return false
}