HI,
von einem
FTP Server würde ich dir persönlich eher abraten. An sich gilt sowohl für HTTP als auch für
FTP Server, dass es doch da schon einige gute Lösungen gibt. Du solltest also eher schauen, wie du eine Anbindung an diese Server bekommst als dir einen neuen zu schreiben (es gibt da einfach schon zu viele!).
Das sollte sich in deinem Fall eher lohnen, du musst dir dann keine Gedanken über Probleme machen, die andere Programme schon lange gelöst haben.
Was
FTP angeht, so hast du hier ein paar Schwierigkeiten zu bewältigen. Ausserdem sind
FTP Server immer gern gesehene Angriffsziele. Gerade in Zusammenarbeit mit einem Router hast du noch dieses schöne Problem, dass
FTP einen zufälligen Port wählt für die Datenübertragung. Das ganze schränkt den Nutzen einer Firewall (oder die Datenübertragung per
FTP) etwas ein.
Es gibt ja schließlich Alternativen.
Dein Hauptproblem für eine Peer-To-Peer Verbindund dürfte es sein, wie die sich finden. Wenn du keinen zentralen Server verwenden möchtest, der die Verbindung zwischen beiden vermittelt hast du ein Problem. Die IPs der beiden Rechner dürften dynamisch sein. Du müsstest also dafür sorgen, dass die entweder über eine feste Adresse (sowas wie dynDns.org oder ähnliche) erreichbar sind oder die müssten die
IP des gegenüber kennen (was wohl weniger praktikabel sein dürfte).
Hast du einen zentralen Server, so hat der ja immer einen festen Namen. Meldet sich hier jmd. an, weiß der Server ja schon wer (mit welcher
IP) noch existiert und kann hier die entsprechenden Daten weiterreichen. Die Übertragung findet dann trotzdem nur zwischen den Clients statt.
Der Weg mit der festen Adresse (die dann dyn. in die aktuelle
IP aufgelöst wird) ist im Prinzip das Gleiche. Hier ist die feste Adresse über die man die Daten bezieht dann natürlich der DNS. Aber letztlich hast du im zweiten Fall noch das Problem, dass sich jeder der dein Prog. nutzen möchte eine Domain holen muss, die dyn. IPs unterstützt (gibt's kostenlos) und dann noch dafür sorgen muss, dass die
IP aktuell gehalten wird (gibt's natürlich auch Tools für).
Was einen Rechner hinter einem Router angeht, so besteht hier das eigentliche Problem immer darin, dass ein Router ankommende Pakete standardmässig verwirft. Letztlich hätte auch ein Server nur die
IP Adresse des Routers. Kommen jetzt Daten von Aussen (ohne das vorher einer der Rechner hinter dem Router diese Daten angefordert hat), so hast du der das Problem, dass er ja nicht weiß für wen dieses Paket sein soll. Es gibt natürlich für den Router die Möglichkeit einfach das Paket per Braodcast an alle zu reichen, aber so dumm ist dann zum Glück kein Router.
Eine Alternative hier ist es, dass der Router Port-Forwarding unterstützt. Hier kann dann für einzelne Ports festgelegt werden, an wen Pakete auf diesem Port weitergereicht werden. Wird dies nicht vom Router unterstützt, wird es nicht wirklich möglich sein am Router vorbei zu kommen (nicht sinnvoll).
Ja, für den HTTP und
FTP Server bleibe ich dabei, nimm einfach einen Server den es schon gibt. Gerade die Apache Groupe bietet einige gute Server, die sich teilweise auch sehr schön erweitern lassen.
Gruß Der Unwissende