public static void Connect(Peer Peer, string Host, int Port, int Ms, bool isSecure, bool isLocal, EventHandler <SocketAsyncEventArgs> Completed) { IPAddress IP = MemoryUtils.Host2IP(Host); if (IP == null) { MemoryUtils.Error("Could not resolve host " + Host); return; } SocketAsyncEventArgs e = new SocketAsyncEventArgs(); e.RemoteEndPoint = new IPEndPoint(IP, Port); e.Completed += Completed; Socket Socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); Socket.NoDelay = true; Socket.Blocking = false; Socket.ExclusiveAddressUse = true; Socket.LingerState = new LingerOption(true, 0); e.UserToken = Create(Socket, Peer, isSecure, isLocal); if (!Socket.ConnectAsync(e)) { Completed(null, e); } }