/// <summary>
/// Listen for regular HTTP connections
/// </summary>
/// <param name="address">IP Address to accept connections on</param>
/// <param name="port">TCP Port to listen on, default HTTP port is 80.</param>
/// <param name="factory">Factory used to create <see cref="IHttpClientContext"/>es.</param>
/// <exception cref="ArgumentNullException"><c>address</c> is null.</exception>
/// <exception cref="ArgumentException">Port must be a positive number.</exception>
protected HttpListenerBase(IPAddress address, int port, IHttpContextFactory factory)
{
Check.Require(address, "address");
Check.Min(0, port, "port");
Check.Require(factory, "factory");
_address = address;
_port = port;
_factory = factory;
_factory.RequestReceived += OnRequestReceived;
}