Как обработать ошибку тайм-аута в слушателе TCP? - PullRequest
0 голосов
/ 21 апреля 2020

Я пытаюсь обработать тайм-аут ошибки в golang, но он не перехватывается.

Я уже посмотрел здесь , но, похоже, он не работает, вы можете определить, что я скучаю? спасибо

(просто любопытство: как это возможно, что процедура обработки ошибок тайм-аута обрабатывается до вызова функции Accept ()? (кажется, что выполнение строк кода происходит в обратном порядке после функции accept ()) время ожидания))

(все остальные проверки ошибок были упущены для упрощения кода)

tcpaddr, err := net.ResolveTCPAddr("tcp", Clientaddr+":"+Clientport)
tcplistener, err := net.ListenTCP("tcp", tcpaddr)
err := tcplistener.SetDeadline(time.Now().Add(2 * time.Second))
if err != nil {
    e, _ := err.(net.Error)
    if e.Timeout() {
        fmt.Printf("time out: %v\n", err)
    } else {
        fmt.Printf("error setting timeout option for \"tcplistener\": %v\n", err)
    }
}
clientsocket, err := tcplistener.Accept()
...