simple async socket wrappper (C#)