Ejemplo n.º 1
0
        private void GetTcpStream(IForm mainForm)
        {
            _tcpc.GetStream().BeginRead(_mrx, 0, _mrx.Length, ar =>
            {
                try
                {
                    _tcpc = ar.AsyncState as TcpClient;

                    if (_tcpc == null) { MessageBox.Show(@"The TCP client was not instantiated."); return; }

                    var countBytes = _tcpc.GetStream().EndRead(ar);

                    if (countBytes == 0)
                    {
                        MessageBox.Show(@"Connection was broken");
                        return;
                    }

                    var received = Encoding.ASCII.GetString(_mrx, 0, countBytes);

                    mainForm.SetOutput(received);
                    GetTcpStream(mainForm);

                }
                catch (Exception ex)
                {
                    MessageBox.Show(string.Format("There was an error: {0}", ex.Message));
                }
            }, _tcpc);
        }
Ejemplo n.º 2
0
        ///-------------------------------------------------------------------------------------------------
        /// <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;
        }