Exemple #1
0
        public static MessageModel getHeartBtMessage()
        {
            var msgBody = new HeartBtMessageNode();
            var msg     = MessageModel.BuildMessage(MessageModel.MSGTYPE_HEARTBEAT, msgBody);

            return(msg);
        }
Exemple #2
0
        public static MessageModel getLogonMessage()
        {
            var msgBody = new LogonMessageNode();

            msgBody.senderCompID     = ConfigurationManager.AppSettings.Get("sdk_sender");
            msgBody.targetCompID     = ConfigurationManager.AppSettings.Get("sdk_recver");
            msgBody.heartBtInt       = 3;
            msgBody.passwd           = ConfigurationManager.AppSettings.Get("sdk_pass");
            msgBody.defaultApplVerID = "1.02";

            var msg = MessageModel.BuildMessage(MessageModel.MSGTYPE_LOGON, msgBody);

            return(msg);
        }
Exemple #3
0
        /// <summary>
        /// 从缓冲区获取一个消息,线程安全
        /// </summary>
        /// <returns></returns>
        private MessageModel peekMessage()
        {
            var msg = new MessageModel();

            this.mPeekLock.EnterWriteLock();

            try
            {
                //消息头
                var msgHeadSize = YunLib.DataHelper.StructSize <MessageHeaderNode>();



                var msgHeaderData = this.mNetClient.recvBuffer(msgHeadSize);
                var msgHeader     = YunLib.DataHelper.BytesToStruct <MessageHeaderNode>(msgHeaderData);

                //消息体
                UInt32 bodyLen     = msgHeader.bodyLength;
                var    msgBodyData = this.mNetClient.recvBuffer((int)bodyLen);


                //消息尾
                var msgTailerSize = YunLib.DataHelper.StructSize <MessageTailerNode>();
                var msgTailerData = this.mNetClient.recvBuffer(msgTailerSize);

                //消息二进制数据
                var msgData = new byte[msgHeaderData.Length + msgBodyData.Length + msgTailerData.Length];
                msgHeaderData.CopyTo(msgData, 0);
                msgBodyData.CopyTo(msgData, msgHeaderData.Length);
                msgTailerData.CopyTo(msgData, msgHeaderData.Length + msgBodyData.Length);



                msg = MessageModel.BuildMessage(msgData);
            }
            catch (Exception ex)
            {
                YunLib.LogWriter.Log(ex.ToString());
            }

            this.mPeekLock.ExitWriteLock();

            return(msg);
        }