using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace FS_CLIENT.Networking { public class Packet { private byte[] _buffer; public Packet(ushort length, ushort type) { length = (ushort)(4 + length); _buffer = new byte[length]; WriteUInt16(length, 0); WriteUInt16(type, 2); } public Packet(byte[] buffer) { _buffer = buffer; } public void WriteUInt16(ushort value, int offset) { byte[] buffer = new byte[2]; buffer = BitConverter.GetBytes(value); Buffer.BlockCopy(buffer, 0, _buffer, offset, 2); } public void WriteString(string value, int offset) { byte[] buffer = new byte[value.Length]; buffer = Encoding.ASCII.GetBytes(value); Buffer.BlockCopy(buffer, 0, _buffer, offset, value.Length); } public byte[] GetBytes() { return _buffer; } public ushort ReadUInt16(int offset) { return (ushort)BitConverter.ToInt16(_buffer, offset); } public string ReadString() { return Encoding.ASCII.GetString(_buffer, 4, _buffer.Length - 4); } } }