udp: make it possible to receive empty udp packets

A udp packet can have 0 content.
In that case nread will be equal 0, but addr != NULL.
nit: move `client` down to `timer`. easier to read if all uninitialized variables are in the same place.