57 lines
1.2 KiB
C#
57 lines
1.2 KiB
C#
using System.Text;
|
|
|
|
namespace GServer.Common;
|
|
|
|
public class MessageMemoryStream : MemoryStream
|
|
{
|
|
public MessageMemoryStream()
|
|
{
|
|
}
|
|
|
|
public MessageMemoryStream(byte[] buffer) : base(buffer)
|
|
{
|
|
}
|
|
|
|
public bool ReadBoolean()
|
|
{
|
|
return ReadByte() == 1;
|
|
}
|
|
|
|
public ushort ReadUInt16()
|
|
{
|
|
byte[] buffer = new byte[2];
|
|
_ = Read(buffer, 0, 2);
|
|
return BitConverter.ToUInt16(buffer);
|
|
}
|
|
|
|
public short ReadInt16()
|
|
{
|
|
byte[] buffer = new byte[2];
|
|
_ = Read(buffer, 0, 2);
|
|
return BitConverter.ToInt16(buffer);
|
|
}
|
|
|
|
public string ReadUTF8String(int length)
|
|
{
|
|
byte[] bytes = new byte[length];
|
|
_ = Read(bytes, 0, length);
|
|
return Encoding.UTF8.GetString(bytes);
|
|
}
|
|
|
|
public void WriteBoolean(bool value)
|
|
{
|
|
WriteByte((byte)(value ? 1 : 0));
|
|
}
|
|
|
|
public void WriteUInt16(short value)
|
|
{
|
|
byte[] bytes = BitConverter.GetBytes(value);
|
|
Write(bytes, 0, 2);
|
|
}
|
|
|
|
public void WriteUTF8String(string value)
|
|
{
|
|
byte[] bytes = Encoding.UTF8.GetBytes(value);
|
|
Write(bytes, 0, bytes.Length);
|
|
}
|
|
}
|