Am Anfang war mldonkey ein Linux-Client für das eDonkey-Netzwerk, der aus einem "reverse-engineered" Protokoll entstanden ist Jetzt ist er in der Lage sich zu verschiedenen Netzwerken zu verbinden (gnutella, Direct-Connect, Soulseek, etc).
Er läuft als daemon, der im Hintergrund 24h pro Tag laufen kann um Dateien zu sharen und herunterzuladen. Du kannst den mldonkey-daemon entweder lokal oder über via telnet, das WEB- Interface oder über die GTK GUI kontrollieren. Es sind auch andere GUIs für mldonkey entwickelt worden.
Die meisten Programmieren verbinden funktionale Sprachen mit Theory, Rekursivität, und nicht-veränderlichen Variablen, i.A. die langweiligsten Vorlesungen an der Uni.
Glücklicherweise ist Objective-Caml nicht nur eine funktionale Sprache: es bringt viele andere Programmier-Paradigmen mit, wie z.B. Befehlskonstrukte (while und for, veränderliche Variablen, records), Objekt-orientierte Strukturen, und ein mächtiges C-Interface. Darüberhinaus überprüft sein native-code Kompiler dein Programm sorgfältig auf Typfehler (keine Segfaults mehr!)und produziert ziemlich effektiven Code (sogar schneller als C in manchen Beispielen).
Wenn du mir icht glaubst, schau dir folgende Links an:
Deine erste Anlaufstelle ist die MLdonkey Projekt Seite, dort findest du:
Die neuesten stabilen binaries können von der Project-Download-Seite heruntergeladen werden. Wenn du eine aktuellere Version von mldonkey willst, musst du dir die Quelltexte aus dem CVS besorgen und selbst kompilieren. Siehe auch mldonkey kompilieren..
MLdonkey läuft nicht sehr gut unter Cygwin in Windows. Darüberhinaus gibt es keine Portierung von MLdonkey für Windows. Du wirst also nicht in der Lage sein, mldonkey auf diesen Systemen zu benutzen.
Wenn du ein bisschen über MinGW bescheid weisst, kannst du versuchen Objective-Caml und mldonkey zu kompilieren. Da läuft es vielleicht besser als unter Cygwin. Wichtig ist vielleicht noch: Mldonkey benutzt keine Threads, und der "select call" wird nur benutzt, um zwischen den sockets (read/write/connect/accept) umzuschalten.
Wenn du mldonkey 1.16 benutzt hast, interessiert es dich vielleicht, was bei der Version 2.0 neu ist. Hier sind die Hauptverbesserungen.
mldonkey installiert seine Konfigurationsdateien in dem Verzeichnis, in dem du ihn gestartet hast. Als erstes musst du also ein Verzeichnis auswählen, in dem er laufen soll. Dann kopierst du die "servers.ini", das in der Distribution enthalten ist, in dieses Verzeichnis. Ich gehe hier davon aus, dass mldonkey in seinem Verzeichnis gestartet wird. Starte mldonkey mit:
./mldonkey
./mldonkey &> /dev/null
Es gibt drei verschiedene Wege den mldonkey daemon zu kontrollieren (in der default-Einstellung akzeptiert mldonkey nur von dem Computer, auf dem er läuft(mehr info)):
MLdonkey erstellt seine Konfigurationsdateien in dem Verzeichnis, in dem er gestartet wurde. Sie haben alle eine .ini Endung. Du solltest sie nicht bearbeiten während mldonkey läuft, da er sie regelmässig überschreibt. Stattdessen solltest du ihn dazu entweder stoppen, oder die Optionen über eines der interfaces bearbeiten.
Es gibt zwei Optionen in der "downloads.ini": max_hard_upload_rate und max_hard_download_rate. Wenn du diese Optionen auf 0 (null) setzt, bedeutet das unbeschränkt. Sie werden in kilobytes/ second (nicht kilobits/second!) angegeben. Das Upload Limit beschränkt sowohl die Dateien, die von dir heruntergeladen werden als auch die messages die du schickst, um nach Dateien zu fragen: pass' also auf, dass du deinen upload nicht zu stark einschränkst!
Wenn du mit diesen Werten nicht zurecht kommst, versuche die besten Werte f ür deine Verbindung herauszufinden, und schick uns die Information, um diese Tabelle zu vervollständigen.
Low Bandwidth Usage | High Bandwidth Usage | |||
Dein Verbindungstyp | max_hard_upload_rate | max_hard_download_rate | max_hard_upload_rate | max_hard_download_rate | T1 und mehr | 50 | 0 | 0 | 0 | Cable/ADSL 512/128 kbs | 2 | 6 | 6 | 12 |
Es gibt zwei Fälle:
Die Dateien, die momentan heruntergeladen werden, werden temporär in dem temp/ Verzeichnis unterhalb der mldonkey Konfigurationsdateien gespeichert. Die Dateien ind diesem Verzeichnis sind über ihren MD4 (bei edonkey Dateien) oder eine Zufallsbezeichnung gekennzeichnet.
Wenn der Download einer Datei beendet ist, wird die Datei zu einer Liste on Dateien hinzugefügt, die "commited" werden müssen. Diese Dateien sind nicht umbenannt, deshalb sind sie auch immer noch im temp Verzeichnis.
Um die Dateien mit ihrem richtigen Namen ins incoming/ Verzeichnis zu verschieben, musst du den Befehl commit in einem der interfaces oder den "save"-Button in der GUI verwenden.
Wenn mldonkey Daten aus dem Netzwerk empfängt, versucht er diese in die entsprechende Datei im temp/ Verzeichnis zu schreiben. Wenn er, aus welchen Gründen auch immer, dort nichts schreiben kann, setzt er diese Datei automatisch auf "Pause".
Das kann aus verschiedenen Gründen passieren:
Wenn du das WEB interface (port 4080) durch eine firewall erreichen willst, und du willst mldonkey nicht als root laufen lassen, kannst du den apache WEB server so konfigurieren, dass er Anfragen an mldonkey weiterreicht.
Du benutzt wahrscheinlich das "static" binary der mldonkey GUI. Lade dir die "shared" binaries von dieser Seite herunter, und benutze diese GUI. Dieser Bug wird von einer Inkompatibilität zwischen der statisch gelinkten GTK-library und den themes, die in deiner Distribution installiert sind verursacht.
Du musst die "allowed_ips" Option in der downloads.ini ändern, um festzulegen, welche Computer berechtigt sind, den mldonkey core zu kontrollieren. Dazu kannst du entweder mldonkey stoppen und die downloads.ini bearbeiten:
allowed_ips = ["127.0.0.1"; "192.168.255.255"; "65.64.43.63"]
erlaubt z.B. deinem localhost (127.0.0.1), allen Hosts aus dem Netzwerk 192.168.*.* und dem Host 65.64.43.63 den mldonkey core zu kontrollieren Wenn Du mldonkey nicht beenden möchtest, verbinde dich lokal via telnet mit dem core (telnet localhost 4000), und gib
set allowed_ips "127.0.0.1 192.168.255.255 65.64.43.63"
ein.
Es sind zwei Fälle zu berücksichtigen:
Besorg dir die Quellcodes aus dem CVS repository.
cvs -d:pserver:anoncvs@subversions.gnu.org:/cvsroot/mldonkey login
(password: einfach enter drücken)
cvs -z3 -d:pserver:anoncvs@subversions.gnu.org:/cvsroot/mldonkey co mldonkey
Du benötigst ein installiertes ocaml-3.06 u (Ocaml site) für den Code und lablgtk mit ocaml 3.06 kompiliertem native code für die GTK gui. Der einfachste Weg ist es, binaries für dein System herunterzuladen. Andernfalls kannst du sie so installieren:
Um den core zu kompilieren musst du einfach die folgenden Befehle verwenden:
cd mldonkey
./configure [...options...]
make depend
make
Jetzt solltest du einen ausführbaren "mldonkey" haben ... Es gibt kein "make install".
Wenn du komische Fehlermeldungen von "make" bekommst, musst du wahrscheinlich "gmake" statt "make" auf deinem System verwenden.
Du kannst folgende Optionen für das configure verwenden:
Nach einem Update aus dem CVS, MUSST du das configure Skript erneut ausführen, und die Abhängigkeiten neu aufbauen:
cd mldonkey
cvs login
cvs -z3 up -d
./configure [...options...]
make depend
make
Wenn der Fehler irgendwas mit camlzip zu tun hat, kannst du als workaround die Datei config/Makefile.config von Hand bearbeiten, um die Zeilen ZLIB=nound SOULSEEK=no zu verändern (nur Soulseek braucht camlzip)
Das eDonkey Netzwerk ist ein Netzwerk, das darauf spezialisiert ist, grosse Dateien zu tauschen (von 0 bis 1.4 GB).
Dieses Netzwerk hat ein paar Charakteristische Eigenschaften, die es so ien keinem anderen Netzwerk gibt.:
Es gibt zwei Arten von WEB Seiten, wo es ed2k:// links für Dateien im eDonkey-Netz gibt:
Mit mehreren Servern verbunden zu sein, kann hilfreich sein, um die Dateien, die du hochlädst, schneller im Netz zu verteilen, und um anfangs mehr Quellen zu finden wenn du einen neuen Download startest.
Wie auch immer, jeder Server, mit dem du verbunden bist, hat weniger Platz für andere User. Aus diesem Grund solltest du mit nicht allzuvielen Servern verbunden bleiben. Mldonkey setzt diesen Grundsatz durch, indem er die Anzahl der Server, mit denen du längere Zeit verbunden bist, auf 5 limitiert, egal was in max_connected_servers steht.
Overnet ist ein Netzwerk, das dasselbe Protokoll verwendet wie eDonkey. Es benutzt allerdings ein anderes Such/Lokalisationsverfahren, das keine Server benötigt.
Mldonkey 2.0 kann nach Dateien und Quellen im Overnet suchen. Dazu :
MLdonkey benutzt zwei Ports für eingehende Verbindungen, einen für TCP (default ist 4662), und einen für UDP (4666). Deshalb solltest du diese Ports in deiner firewall öffnen. Allgemeiner kannst du das für alle Ports zwischen 4660 und 4670 tun.
Eingehende Verbindungen zu erlauben ist wichtig, da es der einzige Weg ist, dich zu anderen Quellen zu verbinden, die hinter einer firewall sind.
Wenn du keinen Einfluss auf die firewall hast, und dein Administrator alle ports von 4660 bis 4670 blockt, solltest du die Ports, die mldonkey verwendet in der downloads.ini ändern.port ist der TCP port, der UDP port ist immer port + 4.
Bearbeite einfach die shared_directories option in der downloads.ini:
shared_directories = [ "/usr/share/documents"; "/usr/share/videos"]
Das Soulseek Netzwerk ist ein Netzwerk ähnlich dem von Napster. Du verbindest dich mit einem einzigen Server, und dort kannst du nach Dateien suchen (hauptsächlich audio) Chat-Räumen beitreten, um mit anderen Usern zu chatten und die Dateien anderer User durchstöbern.
Es gibt nur einen Server im Soulseek, und den, den du in der soulseek.ini stehen hast, ist vielleicht nicht mehr aktuell.
Normalerweise zeigt die mldonkey_gui die Server nicht an, zu denen du nicht verbunden bist. Du musst also den "Display all Servers" button drücken und mldonkey dazu veranlassen, zu versuchen, sich zu dem zweiten soulseek Server zu verbinden.
Im Moment ist dieser Server mail.slsk.org, port 2242
MLdonkey wird soweit verbessert werden, dass er sich automatisch den aktuellen Server von der soulseek Web Seite herunterlädt.
Das LimeWire Netzwerk ist ein Netzwerk, das auf dem Gnutella Netzwerk basiert.
Der grösste Unterschied ist, dass nicht alle Nodes jede empfangene message zu ihren Nachbarn weiterleitet. Dafür sind spezielle Nodes, ultra-nodes genannt, zuständig. Diese haben i.A. eine schnellere Anbindung und sind speziell für diese Aufgabe bereitgestellt. Die normalen Nodes verbinden sich nur mit diesen ultra-nodes, und stellen ihre Anfragen an diese.
Im Moment kann das LimeWire plugin Gnucleus, Morpheus und MyNapster ultra-peers als Server verwenden.
Dieses Netztwerk ist in erster Linie gut, um kleine Dateien zu finden. In diesem Netzwerk ist es nicht möglich zu chatten, oder die Dateien deines Partners zu durchstöbern.
Im Gnutella-Netz gibt es keine spezielles Protokoll, um komplexe Suchanfragen zu stellen. Es steht vielmehr jedem frei, die Suchanfragen so zu interpretieren wie er will, und zu antworten was er will.
Speziell werden Anfragen, die mehrere Wörter umfassen oft als logisch mit "ODER" verknüpft interpretiert. Also wird jedes Dokument geliefert, dass eines der Suchwörter enthält.
Wie für Overnet kannst du eine nachträgliche Filterung der Antworten einschalten. Dann werden die empfangenen Ergebnisse von mldonkey nochmals gegen die ursprüngliche Suchanfrage geprüft und nur angezeigt, wenn sie dieser entsprechen. Die nachträgliche wird durch das setzen von "filter_search" auf "true" aktiviert. Wenn du "filter_search_delay" veränderst, wird das update-Intervall geändert (z.B. 30 bedeutet, dass neue Ergebnisse alle 30 Sekunden hinzugefügt werden).
Der momentane Entwicklungsstatus von mldonkey (im CVS) vom 9.9.2002 ist der folgenden Tabelle zu entnehmen (changelog)
Features | eDonkey | Direct Connect | Open Napster | Gnutella LimeWire | Soulseek | Audio Galaxy | OpenFT |
Download Server List | 1.16 | CVS | CVS | CVS | CVS | CVS | |
Server Connect | 1.16 | CVS | CVS | CVS | CVS | CVS | CVS |
View Server Users | 1.16 | CVS | |||||
Search Files | 1.16 | CVS | CVS | CVS | CVS | (web) | CVS |
Browse Peer | 1.16 | CVS | CVS | ||||
Download Files | 1.16 | CVS | CVS | CVS | CVS | CVS | CVS |
Recover Files | 1.16 | CVS | CVS | CVS | CVS | ||
Recover Sources | 1.16 | CVS | CVS | CVS | |||
Pause Downloads | 1.16 | CVS | |||||
Cancel Downloads | 1.16 (not CVS) | CVS | |||||
Upload Files | 1.16 | ||||||
Upload File List | 1.16 | CVS | |||||
Friends | 1.16 | ||||||
Public Messages | CVS | CVS | |||||
Private Messages | 1.16 | ||||||
Import Windows Config | 1.16 | ||||||
Config File | downloads.ini | directconnect.ini | opennap.ini | limewire.ini | soulseek.ini | audiogalaxy.ini | openft.ini |
Disable Network | CVS | CVS | CVS | CVS | CVS | CVS | CVS |