diff --git a/client.go b/client.go index 16cdc897b..5e1d2f519 100644 --- a/client.go +++ b/client.go @@ -6,6 +6,7 @@ import ( "math/rand" "net" "net/url" + "strings" "time" "github.com/lucas-clemente/quic-go/protocol" @@ -73,7 +74,7 @@ func NewClient(addr string) (*Client, error) { } // Listen listens -func (c *Client) Listen() { +func (c *Client) Listen() error { go c.session.run() for { @@ -82,7 +83,10 @@ func (c *Client) Listen() { n, _, err := c.conn.ReadFromUDP(data) if err != nil { - panic(err) + if strings.HasSuffix(err.Error(), "use of closed network connection") { + return nil + } + return err } data = data[:n] diff --git a/example/client/client.go b/example/client/client.go index 0925033e3..24b03dbd9 100644 --- a/example/client/client.go +++ b/example/client/client.go @@ -15,5 +15,8 @@ func main() { panic(err) } - client.Listen() + err = client.Listen() + if err != nil { + panic(err) + } }