aboutsummaryrefslogtreecommitdiff
path: root/Tools
diff options
context:
space:
mode:
authorchai <215380520@qq.com>2023-10-14 12:06:40 +0800
committerchai <215380520@qq.com>2023-10-14 12:06:40 +0800
commit949f5accd281a051e5e2eeb3df8767b4794b6a1e (patch)
treef3430190906a2f505274beaf9f0a04c44ce2c755 /Tools
parent528a2b59e1b5519ddf0bebff6e92300705656952 (diff)
+ Message
Diffstat (limited to 'Tools')
-rw-r--r--Tools/Hazel-Networking/Hazel/MessageReader.cs19
-rw-r--r--Tools/Hazel-Networking/Hazel/MessageWriter.cs24
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);//完全清空整个缓冲区