Don't fail on atomic_compare_exchange if compare fails.  That is totally possible in the normal course of a program
don't assert that sockets must be UDP as TCP is also possible, and may even work