Files
go-proxy/tools/echoserver/main.go
T
rl544 4e8a65f40d pub
2026-09-15 01:38:15 +09:00

37 lines
855 B
Go

package main
import (
"fmt"
"log"
"net/http"
)
func main() {
ports := []string{"18081", "18082", "18083"}
for _, port := range ports {
go startEchoServer(port)
}
// Block main goroutine
select {}
}
func startEchoServer(port string) {
mux := http.NewServeMux()
mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
msg := fmt.Sprintf("Response from Backend Server [Port: %s] | Requested Path: %s", port, r.URL.Path)
// Print to console so we can see which server handled it
log.Printf("[Port %s] Handled request for %s", port, r.URL.Path)
w.Header().Set("Content-Type", "text/plain")
w.WriteHeader(http.StatusOK)
w.Write([]byte(msg + "\n"))
})
log.Printf("Starting Echo Server on :%s", port)
if err := http.ListenAndServe(":"+port, mux); err != nil {
log.Fatalf("Server on %s failed: %v", port, err)
}
}