diff --git a/C6/ListHead.cs b/C6/ListHead.cs new file mode 100644 index 0000000..bb1c492 --- /dev/null +++ b/C6/ListHead.cs @@ -0,0 +1,45 @@ +namespace C6 +{ + + class ListHead + { + private ListHead next; + private ListHead prev; + private T data; + + public T GetData() + { + return this.data; + } + + public void Del() + { + this.next.prev = this.prev; + this.prev.next = this.next; + } + + public void AddTail(ListHead pnew) + { + var prev = this.prev; + var next = this; + + next.prev = pnew; + pnew.next = next; + pnew.prev = prev; + prev.next = pnew; + } + + public void AddHead(ListHead pnew) + { + var prev = this; + var next = this.prev; + + next.prev = pnew; + pnew.next = next; + pnew.prev = prev; + prev.next = pnew; + } + + } + +} diff --git a/C6/Utils.cs b/C6/Utils.cs new file mode 100644 index 0000000..cee9608 --- /dev/null +++ b/C6/Utils.cs @@ -0,0 +1,34 @@ +namespace C6 +{ + + public class Utils + { + + public static void WriteU16Le(byte[] data, int offset, ushort v) + { + data[offset + 0] = (byte)(v & 0xFF); + data[offset + 1] = (byte)(v >> 8); + } + + public static void WriteU32Le(byte[] data, int offset, uint v) + { + data[offset + 0] = (byte)(v & 0xFF); + data[offset + 1] = (byte)((v & 0xFFFF) >> 8); + data[offset + 2] = (byte)((v >> 16) & 0xFF); + data[offset + 3] = (byte)((v >> 16) >> 8); + } + + public static ushort ReadU16Le(byte[] data, int offset) + { + return (ushort)(data[offset] + (ushort)(data[offset + 1] << 8)); + } + + public static uint ReadU32Le(byte[] data, int offset) + { + return (uint)data[offset + 0] + ((uint)data[offset + 1] << 8) + + ((uint)data[offset + 2] << 16) + ((uint)data[offset + 3] << 24); + } + + } + +} diff --git a/Net/ClientNet.cs b/Net/ClientNet.cs index a4039c4..0f52445 100644 --- a/Net/ClientNet.cs +++ b/Net/ClientNet.cs @@ -20,7 +20,8 @@ namespace Net { Open, Error, - Closed + Closed, + Read } private string uri; @@ -112,6 +113,7 @@ namespace Net private void OnWsBinaryReceived(WebSocket ws, byte[] data) { Debug.Log("ClientNet.OnBinaryReceived"); + this.AddEvent(EventType.Read, new object[]{data.Clone()}); } private void OnWsError(WebSocket ws, string reason) @@ -173,6 +175,11 @@ namespace Net } } break; + case EventType.Read: + { + + } + break; } }