Dexter1997 hat geschrieben:Ich erlerne den Umgang mit UDP und TCP, nicht, wie sie im Einzelnen funktionieren. Ich denke, das reicht für einen Anwendungsprogrammierer auch aus.
Du weißt, dass dein o.g. Problem erstmal nichts mit UDP / TCP zu tun hat? Letzteres sind Protokolle, die je nach Anwendungsart eingesetzt werden. UDP i.d.R. für Echtzeitanwendungen z.B. Internettelefonie / VoIP - hier ist wurst ob einzelne Frames flöten gehen, die Übertragung muss besonders verzögerungsfrei sein. Bei TCP soll die Vollständigkeit der Daten gewährleistet werden, wird meist bei verbindungsorientierten Sitzungen, wie bspw. HTTP eingesetzt.
Dexter1997 hat geschrieben:HTTP kann meines Wissens allerdings nur Textdateien übertragen, wobei meistens nur HTML-Dateien übertragen werden.
Gegenfrage, mit welchem Protokoll spricht dein Rechner / Internetbrowser wenn du eine Seite ansurfst, und Bilder angezeigt werden?
Wenn du mit zwei Clients von Standort A nach B und vice versa kommunizieren möchtest, wirst du einen Server als Vermittler benötigen, der die Daten vollständig, sicher und an das richtige Ziel ausgibt. Du hast also nicht nur ein Problem dass du erstmal am Standort des Servers entsprechende Portfreigaben einrichten musst, sondern, dass dieser u.U. multithreading-fähig o.ä. ist, und weiß, wann eine Nachricht "vollständig" ist, da TCP zunächst ein endloser Byte-Stream ist. Zusätzlich sollte die Übertragung der Daten verschlüsselt übertragen werden. Eine Applikation zu schreiben, die über keinerlei Schutzmechanismen verfügt und auf einem Netzwerkport WAN-seitig Anfragen entgegennimmt würde ich sowieso in eine DMZ verfrachten.
UDP ist IMO absolut nicht geeignet für die Erstellung eines Chat-Servers.
Mfg, sls