15 linijek kodu i... P2P
- Krzysztof Biliński,
- 17.12.2004, godz. 10:09
Jak prosty może być program do wymiany plików w sieci P2P? Okazuje się że wystarczy 15 linii kodu. Przykładem jest TinyP2P, program napisany w języku Python przez Eda Feltena i Alexa Haldermana.
Program ten został napisany tylko w celu zademonstrowania, jak prosta może być taka aplikacja. Cały jej kod to 15 linijek, nie dłuższych niż 80 znaków.
Kiedy uruchomimy go w trybie serwera, program łączy się z innymi serwerami w sieci i udostępnia wszystkie pliki znajdujące się w aktualnym katalogu, stają się one automatycznie dostępne dla innych użytkowników sieci. Aby uruchomić program w tym trybie należy wpisać komendę:
python tinyp2p.py hasło server nazwahosta port [inneurl]
gdzie:
- hasło - hasło dla danej sieci;
- nazwahosta i port posłużą do zbudowania adresu URL (http://nazwahosta:port), na którym serwer będzie nasłuchiwał połączeń przychodzących;
- inneurl (opcjonalnie) - określa adres innego serwera działającego w sieci, do którego nasz serwer ma się podłączyć. Jeżeli tego parametru nie podamy, serwer założy nową sieć.
Chcąc natomiast uruchomić klienta wpisujemy komendę:
python tinyp2p.py hasło client serwerurl wzór
gdzie:
- hasło - hasło dla danej sieci;
- serwerurl - jest to adres serwera należącego do sieci;
- wzór - klient po podłączeniu do sieci szuka wśród udostępnionych plików takich, których nazwy zawierają wzór, lub ściślej wzór jest wyrażeniem regularnym Pythona, z którym są porównywane nazwy plików w sieci.
Warto zauważyć, że można uruchomić zarówno serwer, jak i klienta w tym samym katalogu. Spowoduje to, że pliki pobrane przez klienta, są automatycznie udostępniane w sieci przez serwer. Możliwe jest też uruchomienie wielu serwerów, należących do różnych sieci, w tym samym katalogu.
Program można pobrać tutaj.