socket interface