public IAsyncResult BeginConnect(AsyncCallback callback, object state) { AsyncResult result = new AsyncResult(callback, state); result.Complete(); return result; }
/// <summary> /// Begins the message stream encryption handshaking process /// </summary> /// <param name="socket">The socket to perform handshaking with</param> public virtual IAsyncResult BeginHandshake(IConnection socket, AsyncCallback callback, object state) { if (socket == null) throw new ArgumentNullException("socket"); if (asyncResult != null) throw new ArgumentException("BeginHandshake has already been called"); asyncResult = new AsyncResult(callback, state); try { this.socket = socket; // Either "1 A->B: Diffie Hellman Ya, PadA" or "2 B->A: Diffie Hellman Yb, PadB" // These two steps will be done simultaneously to save time due to latency SendY(); ReceiveY(); } catch (Exception ex) { asyncResult.Complete(ex); } return asyncResult; }