Hi Go nuts,
I have a (server) function that gets a context.Context and *listens* on a
net.UDPConn. I would like this function to receive and handle network
packets, but close the socket and return as soon as the context is
cancelled.
Ideally, I'd like to do something along these lines:
for {
select {
case pkg := <- conn:
handle(ctx, pkg)
case <- ctx.Done():
// defer conn.Close() is called here
return ctx.Err()
}
}
I'm unable to find anything that would allow me to select on the
connection, unfortunately. Is there a way to turn an UDP socket into a
channel?
The next best thing would likely be to read from the connection with a
relatively short timeout and check ctx.Done() periodically. That sort of
busy waiting is not as elegant as I had hoped though.
Thanks for any pointers you might be able to share! :) Best regards,
—octo
--
You received this message because you are subscribed to the Google Groups
"golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.