aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorchai <215380520@qq.com>2023-10-12 10:13:30 +0800
committerchai <215380520@qq.com>2023-10-12 10:13:30 +0800
commitdd0c5d50e377d9be1e728463670908a6c9d2c14f (patch)
tree1fb2f0b33177e16f458e7c61ce57e0bbc8e8e38f
parent22799f780643e67ece6a02739b6c3fd7673a48b6 (diff)
*misc
-rw-r--r--Documents/资料.xlsxbin2577004 -> 1187005 bytes
-rw-r--r--MultiplayerToolkit/Assets/MultiplayerToolkit/Packet.cs77
-rw-r--r--MultiplayerToolkit/Assets/MultiplayerToolkit/Test/TestTcp/Test_TcpClient.cs8
-rw-r--r--MultiplayerToolkit/Assets/MultiplayerToolkit/Test/TestTcp/Test_TcpServer.cs19
4 files changed, 62 insertions, 42 deletions
diff --git a/Documents/资料.xlsx b/Documents/资料.xlsx
index 47d8002..0cec306 100644
--- a/Documents/资料.xlsx
+++ b/Documents/资料.xlsx
Binary files differ
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;
}