Servidor
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 |
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
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
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() } } |