예제 #1
0
        private void BuildMessage(object state)
        {
            byte[] datagram;
            try
            {
                UdpWriter uw = new UdpWriter();
                _sendingTicket.BuildRpcMessage(uw);
                datagram = uw.Build();
            }
            catch (Exception ex)
            {
                Log.Debug("UDP datagram not builded (xid:{0}) reason: {1}", _sendingTicket.Xid, ex);
                lock (_sync)
                    _handlers.Remove(_sendingTicket.Xid);
                _sendingTicket.Except(ex);
                OnSend();
                return;
            }


            Log.Debug("Begin sending UDP datagram (xid:{0})", _sendingTicket.Xid);
            _client.AsyncWrite(datagram, OnDatagramWrited);
        }
예제 #2
0
파일: TcpSession.cs 프로젝트: qipa/OncRpc
        private void BuildMessage(object state)
        {
            LinkedList <byte[]> blocks;

            try
            {
                TcpWriter tw = new TcpWriter(_maxBlock);
                _sendingTicket.BuildRpcMessage(tw);
                blocks = tw.Build();
            }
            catch (Exception ex)
            {
                Log.Debug("TCP message not builded (xid:{0}) reason: {1}", _sendingTicket.Xid, ex);
                lock (_sync)
                    _handlers.Remove(_sendingTicket.Xid);
                _sendingTicket.Except(ex);
                OnSend();
                return;
            }

            BeginReceive();
            Log.Debug("Begin sending TCP message (xid:{0})", _sendingTicket.Xid);
            _client.AsyncWrite(blocks, OnBlocksWrited);
        }