/// <summary> /// Starts connection to the specified host. /// </summary> /// <param name="host">Host name or IP address.</param> /// <param name="port">Port to connect.</param> /// <param name="ssl">Specifies if connects to SSL end point.</param> /// <param name="callback">Callback to call when the connect operation is complete.</param> /// <param name="state">User data.</param> /// <returns>An IAsyncResult that references the asynchronous connection.</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 already connected.</exception> /// <exception cref="ArgumentException">Is raised when any of the arguments has invalid value.</exception> public IAsyncResult BeginConnect(string host, int port, bool ssl, AsyncCallback callback, object state) { if (m_IsDisposed) { throw new ObjectDisposedException(GetType().Name); } if (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 = Connect; AsyncResultState asyncState = new AsyncResultState(this, asyncMethod, callback, state); asyncState.SetAsyncResult(asyncMethod.BeginInvoke(host, port, ssl, asyncState.CompletedCallback, null)); return(asyncState); }
/// <summary> /// Starts connection to the specified host. /// </summary> /// <param name="host">Host name or IP address.</param> /// <param name="port">Port to connect.</param> /// <param name="ssl">Specifies if connects to SSL end point.</param> /// <param name="callback">Callback to call when the connect operation is complete.</param> /// <param name="state">User data.</param> /// <returns>An IAsyncResult that references the asynchronous connection.</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 already connected.</exception> /// <exception cref="ArgumentException">Is raised when any of the arguments has invalid value.</exception> 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; }