socket library