2016-11-08 18:44:23 +00:00
|
|
|
|
using System;
|
2017-03-02 20:50:09 +00:00
|
|
|
|
using System.Collections.Generic;
|
|
|
|
|
using System.Linq;
|
|
|
|
|
using System.Text;
|
|
|
|
|
using System.Threading;
|
|
|
|
|
using System.Threading.Tasks;
|
2016-11-08 18:44:23 +00:00
|
|
|
|
|
|
|
|
|
namespace MediaBrowser.Model.Net
|
|
|
|
|
{
|
2017-03-02 20:50:09 +00:00
|
|
|
|
/// <summary>
|
|
|
|
|
/// Provides a common interface across platforms for UDP sockets used by this SSDP implementation.
|
|
|
|
|
/// </summary>
|
2016-11-08 18:44:23 +00:00
|
|
|
|
public interface ISocket : IDisposable
|
|
|
|
|
{
|
2017-03-02 20:50:09 +00:00
|
|
|
|
IpAddressInfo LocalIPAddress { get; }
|
2016-11-08 18:44:23 +00:00
|
|
|
|
|
2017-03-02 20:50:09 +00: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 20:02:34 +00:00
|
|
|
|
|
2017-03-02 20:50:09 +00: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 19:00:35 +00:00
|
|
|
|
Task SendWithLockAsync(byte[] buffer, int bytes, IpEndPointInfo endPoint, CancellationToken cancellationToken);
|
2016-12-07 20:02:34 +00:00
|
|
|
|
}
|
2017-03-02 20:50:09 +00:00
|
|
|
|
}
|