Files
JJBB/Assets/Project/Script/GameLogic/NetWork/BinaryMessage/BinaryMessage.cs

58 lines
1.2 KiB
C#
Raw Normal View History

2024-08-23 15:49:34 +08:00
using System;
using System.IO;
using UnityEngine;
public class BinaryMessage : IDisposable
{
private readonly MemoryStream _stream;
private readonly BinaryWriter _writer;
public BinaryMessage(int sysId, int cmdId)
{
_stream = new MemoryStream();
_writer = new BinaryWriter(_stream);
_writer.Write((byte)sysId);
_writer.Write((byte)cmdId);
}
public void Dispose()
{
_writer.Close();
_stream.Dispose();
}
public void Send()
{
BinaryMessageHandle.PacketSend(_stream, _writer);
Dispose();
}
// 注Lua只有个number没得ByteShort之分所以Number类只能用函数名区分
public void WriteByte(byte data)
{
_writer.Write(data);
}
public void WriteShort(short data)
{
_writer.Write(data);
}
public void WriteInt(int data)
{
_writer.Write(data);
}
public void WriteLong(long data)
{
_writer.Write(data);
}
public void WriteString(string data)
{
var bytes = System.Text.Encoding.UTF8.GetBytes(data);
_writer.Write((short)bytes.Length);
_writer.Write(bytes);
_writer.Write((byte)0);
}
}