always properly exit client in case of failure or bad use
set reuse_address option on socket
Not sure if this should be enabled by default but
 it helps development