public static bool ConnectAsync (SocketType socketType, ProtocolType protocolType, SocketAsyncEventArgs e) { // exception ordering requires to check before creating the socket (good thing resource wise too) CheckConnect (e); // create socket based on the endpoint address family (if specified), otherwise default fo IPv4 AddressFamily raf = e.RemoteEndPoint.AddressFamily; if (raf == AddressFamily.Unspecified) raf = AddressFamily.InterNetwork; Socket s = new Socket (raf, socketType, protocolType); return s.ConnectAsyncReal (e); }