diff options
author | chai <215380520@qq.com> | 2023-10-14 12:06:40 +0800 |
---|---|---|
committer | chai <215380520@qq.com> | 2023-10-14 12:06:40 +0800 |
commit | 949f5accd281a051e5e2eeb3df8767b4794b6a1e (patch) | |
tree | f3430190906a2f505274beaf9f0a04c44ce2c755 /Tools | |
parent | 528a2b59e1b5519ddf0bebff6e92300705656952 (diff) |
+ Message
Diffstat (limited to 'Tools')
-rw-r--r-- | Tools/Hazel-Networking/Hazel/MessageReader.cs | 19 | ||||
-rw-r--r-- | Tools/Hazel-Networking/Hazel/MessageWriter.cs | 24 |
2 files changed, 23 insertions, 20 deletions
diff --git a/Tools/Hazel-Networking/Hazel/MessageReader.cs b/Tools/Hazel-Networking/Hazel/MessageReader.cs index b6e35de..ab088df 100644 --- a/Tools/Hazel-Networking/Hazel/MessageReader.cs +++ b/Tools/Hazel-Networking/Hazel/MessageReader.cs @@ -88,11 +88,7 @@ namespace Hazel return output; } - /// <summary> - /// 完全复制 一份 - /// </summary> - /// <param name="source"></param> - /// <returns></returns> + // 没用 public static MessageReader Get(MessageReader source) { var output = MessageReader.GetSized(source.Buffer.Length); @@ -181,12 +177,13 @@ namespace Hazel return output; } - public MessageWriter StartWriter() - { - var output = new MessageWriter(this.Buffer); - output.Position = this.readHead; - return output; - } + // 没用,注释掉了 + //public MessageWriter StartWriter() + //{ + // var output = new MessageWriter(this.Buffer); + // output.Position = this.readHead; + // return output; + //} public MessageReader Duplicate() { diff --git a/Tools/Hazel-Networking/Hazel/MessageWriter.cs b/Tools/Hazel-Networking/Hazel/MessageWriter.cs index 68280cd..a156c77 100644 --- a/Tools/Hazel-Networking/Hazel/MessageWriter.cs +++ b/Tools/Hazel-Networking/Hazel/MessageWriter.cs @@ -24,18 +24,19 @@ namespace Hazel public static readonly ObjectPool<MessageWriter> WriterPool = new ObjectPool<MessageWriter>(() => new MessageWriter(BufferSize)); public byte[] Buffer; // 缓冲区,保存了整个包体,包括头部和内容 - public int Length; // 有效数据在buffer中的长度,可能包含多个嵌套子协议。Length>=Position + public int Length; // 有效数据在buffer中的长度,包含header,可能包含多个嵌套子协议。Length>=Position public int Position; // 写入游标 public SendOption SendOption { get; private set; } private Stack<int> messageStarts = new Stack<int>(); - public MessageWriter(byte[] buffer) - { - this.Buffer = buffer; - this.Length = this.Buffer.Length; - } + // 没用,注释掉了 + //public MessageWriter(byte[] buffer) + //{ + // this.Buffer = buffer; + // this.Length = this.Buffer.Length; + //} /// public MessageWriter(int bufferSize) @@ -98,10 +99,10 @@ namespace Hazel { if (this.SendOption == SendOption.None) { - return this.Length > 1 + expected; + return this.Length > 1 + expected; // header=1 byte } - return this.Length > 3 + expected; + return this.Length > 3 + expected; // header=3 bytes } /// @@ -109,9 +110,10 @@ namespace Hazel { var messageStart = this.Position; messageStarts.Push(messageStart); - this.Buffer[messageStart] = 0; // + this.Buffer[messageStart] = 0; // length this.Buffer[messageStart + 1] = 0; this.Position += 2; + //this.Length = this.Position; this.Write(typeFlag); } @@ -131,6 +133,10 @@ namespace Hazel this.Length = this.Position; } + /// <summary> + /// 重置为sendOption类型的空包 + /// </summary> + /// <param name="sendOption"></param> public void Clear(SendOption sendOption) { Array.Clear(this.Buffer, 0, this.Buffer.Length);//完全清空整个缓冲区 |