use SO_REUSEADDR