Me gustaría crear una aplicación que sirva páginas web internamente y pueda ejecutarse en varias instancias en la misma máquina. Para ello, me gustaría crear una HttpListener
que escucha en un puerto que es:¿Cómo puedo crear una clase HttpListener en un puerto aleatorio en C#?
- seleccionadas al azar
- Actualmente no se usa
En esencia, lo que me gustaría es algo así como:
mListener = new HttpListener();
mListener.Prefixes.Add("http://*:0/");
mListener.Start();
selectedPort = mListener.Port;
¿Cómo puedo lograr esto?
Es posible que desee considerar el uso de las constantes 'MinPort' /' MaxPort' en su lugar, [MSDN link] (http://msdn.microsoft.com/en-us/library/vstudio/system.net.ipendpoint_fields (v = vs.110) .aspx) –
@JosephLennox, la constante 'MinPort' es cero. El valor mínimo dado en la respuesta es más adecuado. –
@Snooganz, el bloque catch debería disponer probablemente de 'mListener'. Además, 'usedPorts' debería ser' Set' para la prueba de membresía lineal. Personalmente, extendería 'usedPorts' dentro del método (o me deshago de él por completo) como si lo usaras en un sistema de larga duración que finalmente pudieras quedarte sin puertos, haciendo que el bucle' while' se ejecute para siempre, incluso si los puertos están disponibles a lo largo del tiempo –