Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /* ------------------------------------------------- *
- * +++++++++++++++++++++++++++++++++++++++++++++++++ *
- * +++ Servidor ECHO Continuo +++ *
- * +++++++++++++++++++++++++++++++++++++++++++++++++ *
- * Compilar con: $ go buil stad_server.go *
- * Ejcutar con: $ go run stad_server.go *
- * ------------------------------------------------- */
- package main // Paquete principal, le indica a go que este archivo contiene un punto de ejecucion
- import ( // Importar paquetes
- "fmt" // Libreria estandar
- "net/http" // Servicios de protocolo http
- "code.google.com/p/go.net/websocket" // Servicios de websocket
- )
- func EchoServer(ws *websocket.Conn) { // Funcion basica de servidor ECHO
- for {
- m := make([]byte, 512) // Crea un arreglo de 512 bytes para recibir el mensaje del cliente
- n, err := ws.Read(m) // Lee el mensaje, la cantidad de bytes leidos (n) y captura un error (err) si se presenta
- if err == nil { // Si no hay error
- sm := string(m[:n]) // Convierte el mensaje a tipo string de tamaño exacto
- if sm != "$exit" { // Si el mensaje es diferente a la orden de salir ($exit)
- fmt.Printf("Received: %s.\n", sm) // Imprime el mensaje recibido
- b := []byte("Reply: "+sm) // Crea un arreglo de bytes a partir del mensaje de respuesta
- ws.Write(b) // Escribe el mensaje de respuesta
- } else {
- fmt.Printf("Time of exit!\n") // Imprime el mensaje de salida
- b := []byte("Reply: Time of exit!") // Crea un arreglo de bytes a partir del mensaje de salida
- ws.Write(b) // Escribe el mensaje de salida
- break // Termina la ejecucion del ciclo principal
- }
- }
- }
- }
- func WebSocketHandler() { // Servidor elemental WebSocket
- http.Handle("/echo", websocket.Handler(EchoServer)) // Define la ruta (/echo) a gestionar y la funcion (EchoServer) que atendera las peticiones
- err := http.ListenAndServe(":1234", nil) // Inicia el servidor en el puerto 1234 y captura un error si se presenta
- if err != nil { // Si se presenta un error
- panic("ListenAndServe: " + err.Error()) // Envia el error al sistema de panico, similar al sistema de logs
- }
- }
- func main(){ // Punto de ejecución, funcion principal
- WebSocketHandler() // Inicia el servidor WebSocket
- }
Advertisement
Add Comment
Please, Sign In to add comment