public IAsyncResult BeginConnect(IPEndPoint localEP,IPEndPoint remoteEP,bool ssl,AsyncCallback callback,object state) { if(m_IsDisposed){ throw new ObjectDisposedException(this.GetType().Name); } if(m_IsConnected){ throw new InvalidOperationException("TCP client is already connected."); } if(remoteEP == null){ throw new ArgumentNullException("remoteEP"); } BeginConnectEPDelegate asyncMethod = new BeginConnectEPDelegate(this.Connect); AsyncResultState asyncState = new AsyncResultState(this,asyncMethod,callback,state); asyncState.SetAsyncResult(asyncMethod.BeginInvoke(localEP,remoteEP,ssl,new AsyncCallback(asyncState.CompletedCallback),null)); return asyncState; }
/// <summary> /// Starts disconnecting connection. /// </summary> /// <param name="callback">Callback to call when the asynchronous operation is complete.</param> /// <param name="state">User data.</param> /// <returns>An IAsyncResult that references the asynchronous disconnect.</returns> /// <exception cref="ObjectDisposedException">Is raised when this object is disposed and this method is accessed.</exception> /// <exception cref="InvalidOperationException">Is raised when TCP client is not connected.</exception> public IAsyncResult BeginDisconnect(AsyncCallback callback,object state) { if(m_IsDisposed){ throw new ObjectDisposedException(this.GetType().Name); } if(!m_IsConnected){ throw new InvalidOperationException("TCP client is not connected."); } DisconnectDelegate asyncMethod = new DisconnectDelegate(this.Disconnect); AsyncResultState asyncState = new AsyncResultState(this,asyncMethod,callback,state); asyncState.SetAsyncResult(asyncMethod.BeginInvoke(new AsyncCallback(asyncState.CompletedCallback),null)); return asyncState; }
public IAsyncResult BeginConnect(string host,int port,bool ssl,AsyncCallback callback,object state) { if(m_IsDisposed){ throw new ObjectDisposedException(this.GetType().Name); } if(m_IsConnected){ throw new InvalidOperationException("TCP client is already connected."); } if(string.IsNullOrEmpty(host)){ throw new ArgumentException("Argument 'host' value may not be null or empty."); } if(port < 1){ throw new ArgumentException("Argument 'port' value must be >= 1."); } BeginConnectHostDelegate asyncMethod = new BeginConnectHostDelegate(this.Connect); AsyncResultState asyncState = new AsyncResultState(this,asyncMethod,callback,state); asyncState.SetAsyncResult(asyncMethod.BeginInvoke(host,port,ssl,new AsyncCallback(asyncState.CompletedCallback),null)); return asyncState; }