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