modified Socket2