IChannel.cs 562 B

12345678910111213141516171819202122232425262728293031
  1. using System;
  2. using System.Threading.Tasks;
  3. namespace Network
  4. {
  5. [Flags]
  6. public enum PacketFlags
  7. {
  8. None = 0,
  9. Reliable = 1 << 0,
  10. Unsequenced = 1 << 1,
  11. NoAllocate = 1 << 2
  12. }
  13. public interface IChannel: IDisposable
  14. {
  15. /// <summary>
  16. /// 发送消息
  17. /// </summary>
  18. void SendAsync(byte[] buffer, byte channelID = 0, PacketFlags flags = PacketFlags.Reliable);
  19. /// <summary>
  20. /// 接收消息
  21. /// </summary>
  22. Task<byte[]> RecvAsync();
  23. Task<bool> DisconnnectAsync();
  24. string RemoteAddress { get; }
  25. }
  26. }