using System; using System.Threading.Tasks; using Common.Base; namespace Common.Network { [Flags] public enum PacketFlags { None = 0, Reliable = 1 << 0, Unsequenced = 1 << 1, NoAllocate = 1 << 2 } public abstract class AChannel: Entity, IDisposable { /// /// 发送消息 /// public abstract void SendAsync( byte[] buffer, byte channelID = 0, PacketFlags flags = PacketFlags.Reliable); /// /// 接收消息 /// public abstract Task RecvAsync(); public abstract Task DisconnnectAsync(); public abstract string RemoteAddress { get; } public abstract void Dispose(); } }