jellyfin/MediaBrowser.Model/Net/ISocket.cs

29 lines
1.0 KiB
C#
Raw Normal View History

2016-11-08 11:44:23 -07:00
using System;
2017-03-02 13:50:09 -07:00
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
2016-11-08 11:44:23 -07:00
namespace MediaBrowser.Model.Net
{
2017-03-02 13:50:09 -07:00
/// <summary>
/// Provides a common interface across platforms for UDP sockets used by this SSDP implementation.
/// </summary>
2016-11-08 11:44:23 -07:00
public interface ISocket : IDisposable
{
2017-03-02 13:50:09 -07:00
IpAddressInfo LocalIPAddress { get; }
2016-11-08 11:44:23 -07:00
2017-03-02 13:50:09 -07:00
/// <summary>
/// Waits for and returns the next UDP message sent to this socket (uni or multicast).
/// </summary>
/// <returns></returns>
Task<SocketReceiveResult> ReceiveAsync(CancellationToken cancellationToken);
2016-12-07 13:02:34 -07:00
2017-03-02 13:50:09 -07:00
/// <summary>
/// Sends a UDP message to a particular end point (uni or multicast).
/// </summary>
Task SendAsync(byte[] buffer, int bytes, IpEndPointInfo endPoint, CancellationToken cancellationToken);
2017-03-26 12:00:35 -07:00
Task SendWithLockAsync(byte[] buffer, int bytes, IpEndPointInfo endPoint, CancellationToken cancellationToken);
2016-12-07 13:02:34 -07:00
}
2017-03-02 13:50:09 -07:00
}