package main import ( //"fmt" "log" "net" "os/exec" "strings" ) func main() { listener, err := net.Listen("tcp", "0.0.0.0:2810") if err != nil { log.Println("Error al abrir el puerto.", err) } defer listener.Close() for { conn, err := listener.Accept() if err != nil { log.Println("Error al aceptar la conexion.", err) } go menuController(conn) } } func menuController(conn net.Conn) { var out string comandoRaw := make([]byte, 1024) n, err := conn.Read(comandoRaw) if err != nil { log.Println(err) } comandoString := strings.TrimSpace(string(comandoRaw[:n])) switch comandoString { case "play": out = playSong(conn) case "pause": out = pauseSong(conn) case "info": out = infoSong(conn) } _, err = conn.Write([]byte(out)) if err != nil { log.Println("Error al enviar la informacion", err) } } func playSong(conn net.Conn) string { cmd := exec.Command("mpc", "play") output, err := cmd.CombinedOutput() if err != nil { log.Println("Error al reproducir musica", err) } return string(output) } func pauseSong(conn net.Conn) string { cmd := exec.Command("mpc", "pause") output, err := cmd.CombinedOutput() if err != nil { log.Println("Error al pausar musica", err) } return string(output) } func infoSong(conn net.Conn) string { cmd := exec.Command("mpc") output, err := cmd.CombinedOutput() if err != nil { log.Println("Error al solicitar informacion", err) } return string(output) }