Joel Berger posted this little program to start a web server to serve local files i działa świetnie:Jak mogę uzyskać port wybrany przez Mojolicious :: Lite?
use Mojolicious::Lite;
@ARGV = qw(daemon);
use Cwd;
app->static->paths->[0] = getcwd;
any '/' => sub {
shift->render_static('index.html');
};
app->start;
I oznakowane wiersza poleceń w @ARGV
bo zapomniałem zrobić. Kiedy zaczyna, daje komunikat informujący, który port wybrał, używając 3000 jeśli to możliwe:
$ perl ~/bin/mojo_cwd
[Fri Mar 29 19:14:09 2013] [info] Listening at "http://*:3000".
Server available at http://127.0.0.1:3000.
chciałbym dostać ten port pro gramatycznie więc zestaw testowy może wie, gdzie go szukać , a ja wolałbym tego nie robić przez wyrzucanie danych wyjściowych. Żadne z moich eksperymentów na ten temat nie było przydatne i myślę, że zawsze zmierzałem w niewłaściwym kierunku. Wygląda na to, że nie wybiera portu, dopóki się nie uruchomi, a kiedy zadzwonię pod numer start
, to już koniec.
Ja też nie chcę określać portu.
To nie jest pilna sprawa. Mam aktualne rozwiązanie tego problemu z innym prostym schematem HTTP, ale szukałem możliwości zastąpienia większości tych rzeczy Mojo, jeśli mogę. Ponieważ stare rzeczy wciąż działają, jest to po prostu coś miłego, a nie coś na swój sposób.
Przydałoby się, aby opublikować kod, z którego próbujesz uzyskać numer portu - abyśmy mogli zobaczyć, czego się spodziewasz, aby się narazić i jak to zrobić. –
Cały kod jest właśnie tutaj. Chcę uruchomić ten skrypt i znać numer portu. Odpowiedź sri jest taka, że zawsze jest 3000 lub nic. –
który byłby łatwy do przetestowania: próba uruchomienia 2 wystąpień aplikacji równolegle daje błąd "Nie można utworzyć gniazda nasłuchiwania: adres już jest używany w ..." - to pokazuje, że domyślnie jest to jedyny port wypróbowany –