示例#1
0
        // GET tables/User/48D68C86-6EA6-4C25-AA33-223FC9A27959
        public SingleResult <User> GetUser(string id)
        {
            LogTools.Log($"Entered UserController.GetUser");

            validateOwner(id);
            return(Lookup(id));
        }
示例#2
0
        Main(string[] args)
        {
            XmlTools xtDoc = new XmlTools();
            LogTools log   = new LogTools();

            xtDoc.Load("tdResult.xml");


            //  login call status
            //  =================


            log.Log("result   = " + xtDoc.Lookup("//amtd/result"));
            log.Log("user-id  = " + xtDoc.Lookup("//amtd/xml-log-in/user-id"));
            log.Log("xchange  = " + xtDoc.Lookup("//amtd/xml-log-in/authorizations/options360"));
            log.Log("acct-id  = " + xtDoc.Lookup("//amtd/xml-log-in/accounts/account/account-id"));
            log.Log("acct-id  = " + xtDoc.Lookup("//amtd/xml-log-in/accounts/account/account-id"));
            log.Log("xchstat  = " + xtDoc.Lookup("//amtd/xml-log-in/exchange-status"));

            xtDoc.ListResearch();



            Console.ReadKey();
            return;
        } //  end of Main()
示例#3
0
        public void Destroy()
        {
            LogTools.Log("Close Socket");
            if (mSocket != null)
            {
                try
                {
                    mSocket.Shutdown(SocketShutdown.Both);
                    mSocket.Close();
                    mSocket = null;
                }
                catch
                {
                }
            }

            unCompleteData = null;
            if (onSocketCloseHandler != null)
            {
                onSocketCloseHandler.Invoke();
            }
        }
示例#4
0
        void OnRecv(IAsyncResult ar)
        {
            if (mSocket == null)
            {
                return;
            }

            try
            {
                Socket curSvr = mSocket;
                int    curLen = curSvr.EndReceive(ar);
                LogTools.Log(string.Format("收到数据,长度:[{0}]", curLen));

                if (curLen < NetData.NetDataLen)
                {
                    LogTools.LogError("解析失败,数据长度不足解析报文长度");
                    return;
                }
                int dataOffset = 0;
                int lastLen    = curLen - dataOffset; //剩余长度
                while (lastLen > 0)                   //如果还有数据
                {
                    if (unCompleteData == null)
                    {
                        if (lastLen < NetData.NetDataLen)//如果剩余长度不足以解析数据长度则跳出循环继续接收
                        {
                            break;
                        }
                        int dataLen = NetData.GetDataLen(recvBuffer, ref dataOffset);
                        lastLen = curLen - dataOffset;
                        bool    curLenEnough = dataLen <= lastLen;
                        int     realLen      = curLenEnough ? dataLen : lastLen;
                        NetData data         = new NetData(recvBuffer, dataOffset, realLen, dataLen, this);
                        dataOffset += realLen;
                        if (data.DataComplete())
                        {
                            mDataCache.EnqueueRecvData(data);
                        }
                        else
                        {
                            //如果数据不完整说明当前buffer的数据已经使用完,需要重新recv
                            unCompleteData = data;
                            break;
                        }
                    }
                    else
                    {
                        int unRecvLen = unCompleteData.GetUnRecvLen();
                        lastLen = curLen - dataOffset;
                        bool curLenEnough = unRecvLen <= lastLen;
                        int  realLen      = curLenEnough ? unRecvLen : lastLen;
                        if (unCompleteData.MergeData(recvBuffer, dataOffset, realLen))
                        {
                            mDataCache.EnqueueRecvData(unCompleteData);
                        }
                        dataOffset += realLen;
                    }
                    lastLen = curLen - dataOffset;
                }
                offset = curLen - dataOffset;
                if (offset > 0)
                {
                    Array.Copy(recvBuffer, dataOffset, recvBuffer, 0, offset);
                }
                Array.Clear(recvBuffer, offset, recvBuffer.Length - offset);
            }
            catch (Exception e)
            {
                LogTools.LogError(e.ToString());

                Destroy();
            }
            StartRecv();
        }