Exemplo n.º 1
0
        private ITcpOp startTcpOp(SrvRequest request)
        {
            request.TrackingId = Helpers.MakeTrackingId();
            request.ServerName = _info.ServerName;
            request.Port       = _info.Port;
            request.UserName   = _info.UserName;
            request.Password   = _info.Password;

            return
                (TcpOp.New(_config.BinaryStreamBufSize, _tcpClient.GetStream()));
        }
Exemplo n.º 2
0
        private async Task processConnection(TcpClient tcpClient)
        {
            try
            {
                var tcpOp = TcpOp.New(_config.BinaryStreamBufSize, tcpClient.GetStream());

                for (;;)
                {
                    var jRequest = await tcpOp.ReadString();

                    if (jRequest.IsEmpty())
                    {
                        break;
                    }

                    var request = jRequest.Parse <SrvRequest>();

                    bool ok = await dispathRequest(request, jRequest, tcpOp);

                    if (!ok)
                    {
                        break;
                    }
                }
            }
            catch (Exception ex)
            {
                if (_isClosed == false)
                {
                    _log.Error("tcp.protocol", ex);
                }
            }
            finally
            {
                try
                {
                    tcpClient.Close();
                }
                catch { }
            }
        }