定期将请求重复发送到TCP服务器

时间:2020-01-12 05:50:26

标签: go

这是从go book中获取的代码。客户端输入消息,然后将请求发送到服务器。如何重复发送相同的请求而无需每次都输入值?同样,连续请求之间的时间间隔应为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 个答案:

答案 0 :(得分:1)

使用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)
    }
}

Run it on the playground