Servidor
package com.example.myapplication
import android.os.Bundle
import androidx.activity.ComponentActivity
import androidx.activity.compose.setContent
import androidx.compose.foundation.background
import androidx.compose.foundation.layout.*
import androidx.compose.material3.Text
import androidx.compose.runtime.*
import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.unit.dp
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.GlobalScope
import kotlinx.coroutines.launch
import java.io.BufferedReader
import java.io.InputStreamReader
import java.net.ServerSocket
class MainActivity : ComponentActivity() {
private val port = 8080 // Puerto para la conexión
private var receivedMessage by mutableStateOf("")
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContent {
Column(
modifier = Modifier
.fillMaxSize()
.background(Color.White)
.padding(16.dp)
) {
Text(receivedMessage)
startServer()
}
}
}
private fun startServer() {
GlobalScope.launch(Dispatchers.IO) {
try {
val serverSocket = ServerSocket(port)
while (true) {
val client = serverSocket.accept()
val inputStream = client.getInputStream()
val bufferedReader = BufferedReader(InputStreamReader(inputStream))
var message: String?
while (bufferedReader.readLine().also { message = it } != null) {
showMessage(message)
}
bufferedReader.close()
client.close()
}
} catch (e: Exception) {
e.printStackTrace()
}
}
}
private fun showMessage(message: String?) {
receivedMessage = "Mensaje recibido: $message"
}
}
Cliente
import java.awt.MouseInfo
import java.awt.Point
import java.io.OutputStream
import java.net.Socket
fun main() {
try {
val socket = Socket("192.168.1.54", 8080) // Cambia a la dirección IP de tu servidor
val outputStream: OutputStream = socket.getOutputStream()
while (true) {
val point: Point = MouseInfo.getPointerInfo().location
val x = point.x.toInt()
val y = point.y.toInt()
val position = "$x,$y\n"
outputStream.write(position.toByteArray())
println(position)
outputStream.flush()
Thread.sleep(100)
}
} catch (e: Exception) {
e.printStackTrace()
}
}
Publicado el día 2 de diciembre de 2023CATEGORÍAS
Android, Kotlin, Lo mejor