Chciałbym stworzyć aplikację, która obsługuje strony internetowe wewnętrznie i może być uruchamiana w wielu instancjach na tym samym komputerze. Aby to zrobić, chciałbym stworzyć HttpListener
który nasłuchuje na porcie, który jest:Jak utworzyć klasę HttpListener na losowym porcie w C#?
- Losowo wybrane
- Obecnie nieużywane
Zasadniczo, co chciałbym coś takiego jak:
mListener = new HttpListener();
mListener.Prefixes.Add("http://*:0/");
mListener.Start();
selectedPort = mListener.Port;
Jak mogę to zrobić?
Można rozważyć użycie stałych 'MinPort' /' MaxPort', [łącze MSDN] (http://msdn.microsoft.com/en-us/library/vstudio/system.net.ipendpoint_fields (v = vs.110) .aspx) –
@JosephLennox, stała 'MinPort' wynosi zero. Minimalna wartość podana w odpowiedzi jest bardziej odpowiednia. –
@Snooganz, blok catch prawdopodobnie powinien rozporządzać 'mListener'. Także 'usedPorts' powinien być' Setem 'dla testu członkostwa liniowego. Osobiście użyłbym 'usedPorts' w metodzie (lub całkowicie się jej pozbyłem), jak gdybyś używał tego w bardzo długim systemie, w którym mógłbyś w końcu zabraknąć portów, przez co pętla' while' działała wiecznie, nawet jeśli porty stają się dostępne w miarę upływu czasu. –