Регулярно отправляйте запрос на tcp сервер - PullRequest
0 голосов
/ 12 января 2020

Это код, взятый из книги go. Клиент вводит сообщение и запрос отправляется на сервер. Как отправить один и тот же запрос повторно, не вводя значения каждый раз? Кроме того, интервал времени между последовательными запросами должен составлять 3 секунды. Должен ли я использовать goroutines?

package main

import (
        "bufio"
        "fmt"
        "net"
        "os"

)

func main() {
        arguments := os.Args
        if len(arguments) == 1 {
                fmt.Println("Please provide host:port.")
                return
        }

        CONNECT := arguments[1]
        c, err := net.Dial("tcp", CONNECT)
        if err != nil {
                fmt.Println(err)
                return
         } 

        for {
                reader := bufio.NewReader(os.Stdin)
                fmt.Print(">>")
                text, _ := reader.ReadString('\n')

                fmt.Fprintf(c, text+"\n")
       }
}

1 Ответ

1 голос
/ 12 января 2020

Используйте time.Ticker для выполнения кода через определенный интервал:

t := time.NewTicker(3 * time.Second)
defer t.Stop()
for range t.C {
    _, err := c.Write([]byte("Hello!\n"))
    if err != nil {
        log.Fatal(err)
    }
}

Запустите его на игровой площадке .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...