Начните с запуска этой программы Go в терминале - она слушает порт 2000, но вы можете изменить его на 8080 или любой другой, какой вы хотите sh:
func main() {
// Listen on TCP port 2000 on all interfaces.
l, err := net.Listen("tcp", ":2000")
if err != nil {
log.Fatal(err)
}
defer l.Close()
for {
// Wait for a connection.
conn, err := l.Accept()
if err != nil {
log.Fatal(err)
}
// Handle the connection in a new goroutine.
// The loop then returns to accepting, so that
// multiple connections may be served concurrently.
go func(c net.Conn) {
log.Println(c)
// Echo all incoming data.
io.Copy(c, c)
// Shut down the connection.
c.Close()
}(conn)
}
}
Затем in отдельный терминал запускает этот простой клиент:
func main() {
var addr string
if len(os.Args) > 1 {
addr = os.Args[1]
} else {
addr = "localhost:2000"
}
conn, err := net.Dial("tcp", addr)
if err != nil {
log.Fatal(err)
// handle error
}
fmt.Fprintf(conn, "foobar")
conn.Close()
}
Просит его подключиться к тому же порту. Соединение должно быть успешным, и вы должны увидеть, что сервер что-то регистрирует.
Теперь попробуйте подключиться к вашему клиенту.
Без записи Go вы можете на эти вещи с помощью инструмента командной строки nc
( netcat ). nc -lv PORT
создает простой сервер прослушивания на PORT, например.