FurinaImpact/FurinaImpact.Kcp/IKcpTransport.cs
2023-12-09 06:45:08 +03:00

22 lines
842 B
C#

using System.Net;
using System.Net.Sockets;
namespace FurinaImpact.Kcp
{
/// <summary>
/// A transport to send and receive packets.
/// </summary>
public interface IKcpTransport
{
/// <summary>
/// Send a packet into the transport.
/// </summary>
/// <param name="packet">The content of the packet.</param>
/// <param name="remoteEndpoint">The remote endpoint</param>
/// <param name="cancellationToken">A token to cancel this operation.</param>
/// <returns>A <see cref="ValueTask"/> that completes when the packet is sent.</returns>
ValueTask SendPacketAsync(Memory<byte> packet, IPEndPoint remoteEndpoint, CancellationToken cancellationToken);
void SetCallbacks(int handshakeSize, Func<UdpReceiveResult, ValueTask> handshakeHandler);
}
}