It was crashing when trying to build a callback argument NSArray with a nil object. NSError's are not guaranteed to have a NSLocalizedFailureReason, so this case should be handled.
Refactor the UdpSockets module _clients array to be a member variable.
Make the UdpSocketClient's delegate a weak reference.
remove reload notificaiton, and rely on dealloc to close all open sockets.