Files
rmpc_controller/client.go
T
2025-12-30 14:59:11 -06:00

56 lines
1.1 KiB
Go

package main
import (
"fmt"
"net"
"os"
"log"
"slices"
)
const (
help =
`Uso del programa. rrmpc [COMMAND]
play Reproduce la cancion que se encuentre en pausa
pause Pausa la cancion que se encuentre en reproduccion
info Muestra informacion del estado de mpd
`
)
func main() {
if (len(os.Args)) != 2 {
fmt.Printf("%s", help)
os.Exit(1)
}
comandosPermitidos := []string{"play", "pause", "info"}
var comando string
if slices.Contains(comandosPermitidos, os.Args[1]) {
comando = os.Args[1]
} else {
fmt.Printf("%s", help)
os.Exit(1)
}
conn, err := net.Dial("tcp", "192.168.2.10:2810")
if err != nil {
log.Println("Error al establecer la conexion", err)
}
defer conn.Close()
handleConn(conn, comando)
}
func handleConn(conn net.Conn, comando string) {
defer conn.Close()
_, err := conn.Write([]byte(comando))
if err != nil {
log.Println("Error al enviar comando", err)
}
respuestaRaw := make([]byte, 1024)
n, err := conn.Read(respuestaRaw)
if err != nil {
log.Println("Error al recibir respuesta", err)
}
fmt.Printf("%s", string(respuestaRaw[:n]))
}