public static bool Connect(BaseCrypto cryptoProvider, IPEndPoint ipEndPoint) { if (cryptoProvider == null) { throw new ArgumentNullException("cryptoProvider"); } if (ipEndPoint == null) { throw new ArgumentNullException("ipEndPoint"); } Network.Disconnect(); try { Socket socket = new Socket(ipEndPoint.AddressFamily, SocketType.Stream, ProtocolType.Tcp); try { socket.SetSocketOption(SocketOptionLevel.Tcp, SocketOptionName.Debug, true); } catch (Exception ex) { Debug.Trace("SetSocketOption failed."); Debug.Error(ex); } Network.ProcessAsyncConnect(socket, socket.BeginConnect((EndPoint)ipEndPoint, (AsyncCallback)null, (object)null)); Network._networkContext = new NetworkContext(socket, cryptoProvider); Network._networkContext.ConnectionLostCallback = (Callback)(() => { Gumps.MessageBoxOk("Connection lost", true, new OnClick(Engine.DestroyDialogShowAcctLogin_OnClick)); Network._networkContext = (NetworkContext)null; Cursor.Hourglass = false; Engine.amMoving = false; }); return(true); } catch (SocketException ex) { return(false); } }
public static void Close() { Network.Disconnect(); }
public static void Disconnect() { Network.Disconnect(true); }