add os detect && socket type