Я пытаюсь обработать тайм-аут ошибки в 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()