Funktioniert dieses Programm auch über Internet?

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Dexter1997
User
Beiträge: 92
Registriert: Sonntag 2. Dezember 2012, 21:13

Die Sache ist die, dass ich keinen konkreten "use-case" habe. Ich habe das Programm nur zum Üben benutzt. Konkreter ausgedrückt wollte ich in diesem Zeichenketten, also Textnachrichten übertragen, die der Empfänger lesen kann. Das hatte innerhabl des lokalen Netzwerkes gut funktioniert.

Mir ist klar, dass die per UDP übertragenen Daten nicht ankommen könnten. Aber dieses Risiko habe ich mal in Kauf genommen, da ich den Umgang mit
TCP erst noch erlerne :D
Sirius3
User
Beiträge: 17754
Registriert: Sonntag 21. Oktober 2012, 17:20

@Dexter1997: Du weißt nicht, wie man UDP benutzt, denkst aber dass Du es besser beherrschst als TCP? Du findest im Internet und in den meisten Büchern, die nicht explizit Netzwerkprotokolle behandeln, zu 99.99% nur fehlerhafte Beispiele. Weder TCP noch UDP werden meist korrekt umgesetzt. Daher will man ja auch höhere Protokolle einsetzen, zu allervorderst HTTP, weil man damit durch fast alle Firewalls durchkommt.
Dexter1997
User
Beiträge: 92
Registriert: Sonntag 2. Dezember 2012, 21:13

Nunja, sagen wir es genauer: Ich weiß, wie ich ein Python-Programm dazu bringe, eine UDP-Verbindung zu einem anderen Programm aufzubauen. Sonst hätte ich ja die gezeigten Programme nicht schreiben können.
Ich erlerne den Umgang mit UDP und TCP, nicht, wie sie im Einzelnen funktionieren. Ich denke, das reicht für einen Anwendungsprogrammierer auch aus.
HTTP kann meines Wissens allerdings nur Textdateien übertragen, wobei meistens nur HTML-Dateien übertragen werden.
Hättest du vielleicht ein Beispiel parat, wie man so ein Chatprogramm, wie ich es geschrieben habe, mit der Nutzung des HTTP-Protokolls realisiert?
Das wäre sehr interessant für mich.
Benutzeravatar
sls
User
Beiträge: 480
Registriert: Mittwoch 13. Mai 2015, 23:52
Wohnort: Country country = new Zealand();

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
When we say computer, we mean the electronic computer.
Antworten