示例#1
0
        /// <summary>
        /// 接收数据,逻辑处理需要重载该函数
        /// </summary>
        /// <param name="session">会话</param>
        /// <param name="dataBlock">数据</param>
        protected override void OnReceivedData(TcpSession session, DataBlock dataBlock)
        {
            try {
                base.OnReceivedData(session, dataBlock); // 接收客户端的请求

                byte[] returns = null;
                try {
                    // 调用服务器端的服务处理客户端的请求
                    byte[] result = CommonService.Invoke(dataBlock.ToArray());
                    if (result == null)
                    {
                        return;
                    }
                    else
                    {
                        returns    = new byte[result.Length + 1];
                        returns[0] = 0;
                        result.CopyTo(returns, 1);
                        Send(session, returns); // 向客户端回传处理结果
                    }
                    dataBlock.Reset();
                }
                catch (Exception ex) {
                    logger.Error("调用服务错误", ex);
                    Exception exp        = new Exception("调用服务错误", ex);
                    byte[]    expResults = serializer.Serialize <Exception>(exp);
                    returns    = new byte[expResults.Length + 1];
                    returns[0] = 1;
                    expResults.CopyTo(returns, 1);
                }
            }
            catch (Exception ex) {
                logger.Error("Tcp服务发生错误", ex);
            }
        }
示例#2
0
 public byte[] WebInvoke(byte[] data)
 {
     return(CommonService.Invoke(data));
 }