Я просто приближаюсь к веб-приложениям в Голанге.
Это простой код в качестве отправной точки:
package main
import (
"fmt"
"log"
"net/http"
)
const (
CONN_HOST = "localhost"
CONN_PORT = "8080"
)
func helloWorld(w http.ResponseWriter, r *http.Request) {
fmt.Fprintf(w, "Hello World!")
}
func main() {
http.HandleFunc("/", helloWorld)
err := http.ListenAndServe(CONN_HOST+":"+CONN_PORT, nil)
if err != nil {
log.Fatal("error starting http server : ", err)
return
}
}
Выполнение:
go run http-server.go
curl http://localhost:8080/
Hello World!
Но при открытии в веб-браузере ip-адрес:
http://111.111.1.1:8080/
connection didn't succeed
Если я заменю этот фрагмент кода:
err := http.ListenAndServe(CONN_HOST+":"+CONN_PORT, nil)
if err != nil {
log.Fatal("error starting http server : ", err)
return
}
с участием :
log.Fatal(http.ListenAndServe(":8080", nil))
поэтому функция main() состоит только из этих двух строк:
func main() {
http.HandleFunc("/", helloWorld)
}
curl http://localhost:8080/
Hello World!
И в веб-браузере:
http://111.111.1.1:8080/
Hello World!
Итак.... как заставить оригинальный простой http-server.go работать в веб-браузере, а не только с завитком из командной строки? Ждем вашей помощи. Марко

IP-адрес, который прослушивал ваш сервер, — localhost, поэтому он обрабатывал только запросы к localhost.
Вы можете попробовать curl http://111.111.1.1:8080/, вы тоже потерпите неудачу.
Если вы хотите получить доступ к вашему серверу из локальной сети или любого другого IP-адреса, вы должны установить CONN_HOST = "111.111.1.1"。
Привет Билли. Ставим const (CONN_HOST = "111.111.1.1:" CONN_PORT = "8080") go run http-server.go 25.01.2019 16:19:11 ошибка при запуске http сервера: слушать tcp: адрес 111.111.1.1::8080: слишком много двоеточий в статусе выхода адреса 1
Я допустил ошибку. const (CONN_HOST = "111.111.1.1" CONN_PORT = "8080") Сейчас. это работает... большое спасибо!!!!
Когда вы обнаружите, что что-то работает с одним клиентом, а не с другим, первое, что нужно сделать, — это трижды проверить, одинаковы ли запросы, которые вы отправляете на каждом клиенте. В данном случае их явно нет.