From 5bea03b73082645df24df52769947b36d1e2fb65 Mon Sep 17 00:00:00 2001 From: nnhy Date: Mon, 11 Apr 2016 02:32:07 +0000 Subject: [PATCH] =?UTF-8?q?=E5=8F=91=E9=80=81=E8=AF=B7=E6=B1=82=E6=97=B6?= =?UTF-8?q?=E8=87=AA=E5=8A=A8=E5=8A=A0=E4=B8=8A=E5=BA=8F=E5=8F=B7=EF=BC=8C?= =?UTF-8?q?=E5=88=9B=E5=BB=BA=E5=93=8D=E5=BA=94=E6=97=B6=E6=8B=B7=E8=B4=9D?= =?UTF-8?q?=E5=BA=8F=E5=8F=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- TinyNet/TinyMessage.cpp | 1 + TokenNet/TokenMessage.cpp | 18 ++++++++++++++++++ TokenNet/TokenMessage.h | 3 +++ 3 files changed, 22 insertions(+) diff --git a/TinyNet/TinyMessage.cpp b/TinyNet/TinyMessage.cpp index d73ffd4e..61f9e7a8 100644 --- a/TinyNet/TinyMessage.cpp +++ b/TinyNet/TinyMessage.cpp @@ -601,6 +601,7 @@ bool TinyController::Send(Message& _msg) // 附上自己的地址 msg.Src = Address; + // 附上序列号。响应消息保持序列号不变 if(!msg.Reply) msg.Seq = ++_Sequence; diff --git a/TokenNet/TokenMessage.cpp b/TokenNet/TokenMessage.cpp index 2cb59d02..181d9934 100644 --- a/TokenNet/TokenMessage.cpp +++ b/TokenNet/TokenMessage.cpp @@ -104,6 +104,18 @@ void TokenMessage::SetError(byte errorCode, const char* error, int errLength) } }*/ +// 创建当前消息对应的响应消息。设置序列号、标识位 +TokenMessage TokenMessage::CreateReply() const +{ + TokenMessage msg; + msg.Code = Code; + msg.Reply = true; + msg.Seq = Seq; + msg.State = State; + + return msg; +} + void TokenMessage::Show() const { #if MSG_DEBUG @@ -345,6 +357,7 @@ bool TokenController::OnReceive(Message& msg) return Controller::OnReceive(msg); } +static byte _Sequence = 0; // 发送消息,传输口参数为空时向所有传输口发送消息 bool TokenController::Send(Message& msg) { @@ -352,6 +365,11 @@ bool TokenController::Send(Message& msg) // 未登录,登录注册,握手可通过 //if(Token == 0&&!( msg.Code <= 0x2||msg.Code == 0x07)) return false; + //static byte _Sequence = 0; + auto& tmsg = (TokenMessage&)msg; + // 附上序列号。响应消息保持序列号不变 + if(!msg.Reply && tmsg.Seq == 0) tmsg.Seq = ++_Sequence; + if(msg.Reply) ShowMessage("Reply", msg); else diff --git a/TokenNet/TokenMessage.h b/TokenNet/TokenMessage.h index e8bcd799..c39d0932 100644 --- a/TokenNet/TokenMessage.h +++ b/TokenNet/TokenMessage.h @@ -42,6 +42,9 @@ public: //// 设置错误信息字符串 //void SetError(byte errorCode, const char* error, int errLength); + // 创建当前消息对应的响应消息。设置序列号、标识位 + TokenMessage CreateReply() const; + // 显示消息内容 virtual void Show() const; };