IUdpProxy.cs 692 B

1234567891011121314151617
  1. using System;
  2. using System.Net;
  3. using System.Net.Sockets;
  4. using System.Threading;
  5. using System.Threading.Tasks;
  6. namespace STUN.Proxy
  7. {
  8. public interface IUdpProxy : IDisposable
  9. {
  10. Socket Client { get; }
  11. ValueTask ConnectAsync(CancellationToken cancellationToken = default);
  12. ValueTask CloseAsync(CancellationToken cancellationToken = default);
  13. ValueTask<SocketReceiveMessageFromResult> ReceiveMessageFromAsync(Memory<byte> buffer, SocketFlags socketFlags, EndPoint remoteEndPoint, CancellationToken cancellationToken = default);
  14. ValueTask<int> SendToAsync(ReadOnlyMemory<byte> buffer, SocketFlags socketFlags, EndPoint remoteEP, CancellationToken cancellationToken = default);
  15. }
  16. }