///------------------------------------------------------------------------------------------------- /// <summary> Converts the given TCP response. </summary> /// /// <remarks> Justin, 7/11/2015. </remarks> /// /// <param name="tcpResponse"> The TCP response. </param> /// /// <returns> A list of. </returns> ///------------------------------------------------------------------------------------------------- public ITcpListenerResponse Convert(ITcpResponse tcpResponse) { ITcpListenerResponse result = new TcpListenerResponse(); result.State = tcpResponse.State; result.AsyncResult = tcpResponse.AsyncResult; result.Result = tcpResponse.Result; result.Listener = tcpResponse.AsyncResult.AsyncState as TcpListener; return result; }
/// ------------------------------------------------------------------------------------------------- /// <summary> Shows the error. </summary> /// /// <remarks> Justin, 7/11/2015. </remarks> /// <param name="message"> The message. </param> /// <param name="response"> The response. </param> /// ------------------------------------------------------------------------------------------------- public static void ShowMessage(string message, ITcpResponse response) { Show(message, response.Result, response.State, MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1, MessageBoxOptions.ServiceNotification); }
///------------------------------------------------------------------------------------------------- /// <summary> Accept TCP client. </summary> /// /// <remarks> Justin, 7/11/2015. </remarks> /// /// <param name="byteArrLength"> Length of the byte array. </param> /// <param name="form1"> The first form. </param> /// <param name="response"> The response. </param> /// /// <returns> An ITcpResponse. </returns> ///------------------------------------------------------------------------------------------------- private ITcpResponse AcceptTcpClient(long byteArrLength, IForm form1, ITcpResponse response) { MTcpListener.BeginAcceptTcpClient(iar => { try { //cast the iar async state contains reference to original tcp object that called begin accept tcp client //cast object to a listener response = _tcpListnerConverter.Convert(iar); if (response.State != TcpState.Success) { TcpMessageService.ShowMessage("There was an error ", response); return; } MTcpClientService.EndAcceptTcpClient(response.AsyncResult); form1.SetOutput("Client Connected..."); AcceptTcpClient(byteArrLength, form1, response); response = MTcpClientService.BeginReadStream(byteArrLength, form1); } catch (Exception ex) { response.Result = ex.Message; response.State = TcpState.Failed; } }, MTcpListener); return response; }