diff options
-rw-r--r-- | Documents/资料.xlsx | bin | 2577004 -> 1187005 bytes | |||
-rw-r--r-- | MultiplayerToolkit/Assets/MultiplayerToolkit/Packet.cs | 77 | ||||
-rw-r--r-- | MultiplayerToolkit/Assets/MultiplayerToolkit/Test/TestTcp/Test_TcpClient.cs | 8 | ||||
-rw-r--r-- | MultiplayerToolkit/Assets/MultiplayerToolkit/Test/TestTcp/Test_TcpServer.cs | 19 |
4 files changed, 62 insertions, 42 deletions
diff --git a/Documents/资料.xlsx b/Documents/资料.xlsx Binary files differindex 47d8002..0cec306 100644 --- a/Documents/资料.xlsx +++ b/Documents/资料.xlsx diff --git a/MultiplayerToolkit/Assets/MultiplayerToolkit/Packet.cs b/MultiplayerToolkit/Assets/MultiplayerToolkit/Packet.cs index 5638189..4e73f80 100644 --- a/MultiplayerToolkit/Assets/MultiplayerToolkit/Packet.cs +++ b/MultiplayerToolkit/Assets/MultiplayerToolkit/Packet.cs @@ -5,17 +5,24 @@ using UnityEngine; namespace MultiplayerToolkit { - + /// <summary> + /// ÍøÂç°ü£¬Í¨Óýṹ£¬ÎÞÂÛÊÇTCP\UDP»¹ÊÇSteamn + /// ½á¹¹£º + /// 4bytes (°ü³¤¶È£¬²»º¬Õâ4×Ö½Ú£© + /// 1byte (ÐÒéÀàÐÍ£¬ÄÚÖÃÐÒé¡¢Íæ¼Ò×Ô¶¨ÒåÐÒ飩 + /// (4bytes) (Èç¹ûÊÇÍæ¼Ò×Ô¶¨ÒåÐÒ飬Ìṩһ¸ömodderΨһ±àºÅ£© + /// 2bytes (ÐÒéID£© + /// </summary> public class Packet : IDisposable { - private List<byte> buffer; + private List<byte> writableBuffer; private byte[] readableBuffer; private int readPos; private bool disposed; public Packet() { - this.buffer = new List<byte>(); + this.writableBuffer = new List<byte>(); this.readPos = 0; } @@ -25,14 +32,14 @@ namespace MultiplayerToolkit /// <param name="_id"></param> public Packet(int _id) { - this.buffer = new List<byte>(); + this.writableBuffer = new List<byte>(); this.readPos = 0; this.Write(_id); } public Packet(byte[] _data) { - this.buffer = new List<byte>(); + this.writableBuffer = new List<byte>(); this.readPos = 0; this.SetBytes(_data); } @@ -43,12 +50,12 @@ namespace MultiplayerToolkit /// <param name="_data"></param> public void SetBytes(byte[] _data) { - if (buffer != null) - buffer.Clear(); + if (writableBuffer != null) + writableBuffer.Clear(); readPos = 0; disposed = false; this.Write(_data); - this.readableBuffer = this.buffer.ToArray(); + this.readableBuffer = this.writableBuffer.ToArray(); } /// <summary> @@ -59,20 +66,20 @@ namespace MultiplayerToolkit /// <param name="length"></param> public void SetBytes(byte[] _data, int offset, int length) { - if (buffer != null) - buffer.Clear(); + if (writableBuffer != null) + writableBuffer.Clear(); readPos = 0; disposed = false; this.Write(Utils.SubArray(_data, offset, length)); - this.readableBuffer = this.buffer.ToArray(); + this.readableBuffer = this.writableBuffer.ToArray(); } /// <summary> - /// ¿ªÍ·Ð´ÈëÒ»¸öintΪµ±Ç°buffer³¤¶È + /// ¿ªÍ·Ð´ÈëÒ»¸öintΪµ±Ç°writableBuffer³¤¶È /// </summary> public void InsertLength() { - this.buffer.InsertRange(0, BitConverter.GetBytes(this.buffer.Count)); + this.writableBuffer.InsertRange(0, BitConverter.GetBytes(this.writableBuffer.Count)); } /// <summary> @@ -81,18 +88,18 @@ namespace MultiplayerToolkit /// <param name="_value"></param> public void InsertInt(int _value) { - this.buffer.InsertRange(0, BitConverter.GetBytes(_value)); + this.writableBuffer.InsertRange(0, BitConverter.GetBytes(_value)); } public byte[] ToArray() { - this.readableBuffer = this.buffer.ToArray(); + this.readableBuffer = this.writableBuffer.ToArray(); return this.readableBuffer; } public int Length() { - return this.buffer.Count; + return this.writableBuffer.Count; } public int UnreadLength() @@ -104,7 +111,7 @@ namespace MultiplayerToolkit { if (_shouldReset) { - this.buffer.Clear(); + this.writableBuffer.Clear(); this.readableBuffer = null; this.readPos = 0; return; @@ -114,43 +121,43 @@ namespace MultiplayerToolkit public void Write(byte _value) { - this.buffer.Add(_value); + this.writableBuffer.Add(_value); } public void Write(byte[] _value) { - this.buffer.AddRange(_value); + this.writableBuffer.AddRange(_value); } public void Write(short _value) { - this.buffer.AddRange(BitConverter.GetBytes(_value)); + this.writableBuffer.AddRange(BitConverter.GetBytes(_value)); } public void Write(int _value) { - this.buffer.AddRange(BitConverter.GetBytes(_value)); + this.writableBuffer.AddRange(BitConverter.GetBytes(_value)); } public void Write(long _value) { - this.buffer.AddRange(BitConverter.GetBytes(_value)); + this.writableBuffer.AddRange(BitConverter.GetBytes(_value)); } public void Write(float _value) { - this.buffer.AddRange(BitConverter.GetBytes(_value)); + this.writableBuffer.AddRange(BitConverter.GetBytes(_value)); } public void Write(bool _value) { - this.buffer.AddRange(BitConverter.GetBytes(_value)); + this.writableBuffer.AddRange(BitConverter.GetBytes(_value)); } public void Write(string _value) { this.Write(_value.Length); - this.buffer.AddRange(Encoding.ASCII.GetBytes(_value)); + this.writableBuffer.AddRange(Encoding.ASCII.GetBytes(_value)); } public void Write(Vector3 _value) @@ -170,7 +177,7 @@ namespace MultiplayerToolkit public byte ReadByte(bool _moveReadPos = true) { - if (this.buffer.Count > this.readPos) + if (this.writableBuffer.Count > this.readPos) { byte arg_31_0 = this.readableBuffer[this.readPos]; if (_moveReadPos) @@ -184,9 +191,9 @@ namespace MultiplayerToolkit public byte[] ReadBytes(int _length, bool _moveReadPos = true) { - if (this.buffer.Count > this.readPos) + if (this.writableBuffer.Count > this.readPos) { - byte[] arg_3B_0 = this.buffer.GetRange(this.readPos, _length).ToArray(); + byte[] arg_3B_0 = this.writableBuffer.GetRange(this.readPos, _length).ToArray(); if (_moveReadPos) { this.readPos += _length; @@ -198,12 +205,12 @@ namespace MultiplayerToolkit public byte[] CloneBytes() { - return this.buffer.ToArray(); + return this.writableBuffer.ToArray(); } public short ReadShort(bool _moveReadPos = true) { - if (this.buffer.Count > this.readPos) + if (this.writableBuffer.Count > this.readPos) { short arg_35_0 = BitConverter.ToInt16(this.readableBuffer, this.readPos); if (_moveReadPos) @@ -217,7 +224,7 @@ namespace MultiplayerToolkit public int ReadInt(bool _moveReadPos = true) { - if (this.buffer.Count > this.readPos) + if (this.writableBuffer.Count > this.readPos) { int arg_35_0 = BitConverter.ToInt32(this.readableBuffer, this.readPos); if (_moveReadPos) @@ -231,7 +238,7 @@ namespace MultiplayerToolkit public long ReadLong(bool _moveReadPos = true) { - if (this.buffer.Count > this.readPos) + if (this.writableBuffer.Count > this.readPos) { long arg_35_0 = BitConverter.ToInt64(this.readableBuffer, this.readPos); if (_moveReadPos) @@ -245,7 +252,7 @@ namespace MultiplayerToolkit public float ReadFloat(bool _moveReadPos = true) { - if (this.buffer.Count > this.readPos) + if (this.writableBuffer.Count > this.readPos) { float arg_35_0 = BitConverter.ToSingle(this.readableBuffer, this.readPos); if (_moveReadPos) @@ -259,7 +266,7 @@ namespace MultiplayerToolkit public bool ReadBool(bool _moveReadPos = true) { - if (this.buffer.Count > this.readPos) + if (this.writableBuffer.Count > this.readPos) { bool arg_35_0 = BitConverter.ToBoolean(this.readableBuffer, this.readPos); if (_moveReadPos) @@ -307,7 +314,7 @@ namespace MultiplayerToolkit { if (_disposing) { - this.buffer = null; + this.writableBuffer = null; this.readableBuffer = null; this.readPos = 0; } diff --git a/MultiplayerToolkit/Assets/MultiplayerToolkit/Test/TestTcp/Test_TcpClient.cs b/MultiplayerToolkit/Assets/MultiplayerToolkit/Test/TestTcp/Test_TcpClient.cs index 5dfe6d5..21c5329 100644 --- a/MultiplayerToolkit/Assets/MultiplayerToolkit/Test/TestTcp/Test_TcpClient.cs +++ b/MultiplayerToolkit/Assets/MultiplayerToolkit/Test/TestTcp/Test_TcpClient.cs @@ -17,12 +17,6 @@ public class Test_TcpClient : MonoBehaviour Invoke("ConnectServer", 2); } - // Update is called once per frame - void Update() - { - - } - private void ConnectServer() { Debug.Log("ConnectServer"); @@ -35,7 +29,7 @@ public class Test_TcpClient : MonoBehaviour packet.Write((int)123); packet.Write("hello"); stream.Write(packet.ToArray()); - Debug.Log("connected, "+ client.Connected); + Debug.Log("connected, " + client.Connected); } diff --git a/MultiplayerToolkit/Assets/MultiplayerToolkit/Test/TestTcp/Test_TcpServer.cs b/MultiplayerToolkit/Assets/MultiplayerToolkit/Test/TestTcp/Test_TcpServer.cs index 7e3e9f0..7abd2ef 100644 --- a/MultiplayerToolkit/Assets/MultiplayerToolkit/Test/TestTcp/Test_TcpServer.cs +++ b/MultiplayerToolkit/Assets/MultiplayerToolkit/Test/TestTcp/Test_TcpServer.cs @@ -30,6 +30,11 @@ public class Test_TcpServer : MonoBehaviour listener.Start(); //listener.BeginAcceptTcpClient(OnAcceptTcpClient, null); + Debug.Log("Start, Thread=" + Thread.CurrentThread.ManagedThreadId); + + Foo2(); + Debug.Log("Foo2"); + Listen(); Debug.Log("listen"); @@ -61,8 +66,22 @@ public class Test_TcpServer : MonoBehaviour async Task<int> Foo2() { + Debug.Log("Foo2, Thread=" + Thread.CurrentThread.ManagedThreadId); await Foo(); + Thread.Sleep(1000); + + await Task.Run(() => { + int threadid = Thread.CurrentThread.ManagedThreadId; + ExecuteOnMainThread(() => { + Debug.Log("Task, Threadid=" + threadid); + }); + for (int i = 0; i < 100; ++i) + { + Debug.Log(i); + } + }); + return 1; } |