Autor Beitrag
Frolo
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 48



BeitragVerfasst: Mi 02.01.13 21:00 
Hey,

ich programmiere derzeit ein Tool, welches sehr stark auf Netzwerkverbindungen setzt. Ich teste am Anfang per UDP-Broadcast ob andere Instanzen laufen (danke an jaenicke) und starte dann einen Server falls dies nicht so ist.

Ich weiß nur, dass TCP in Sachen Datenübertragung zuverlässiger ist, weil Pakete auf Existenz überprüft werden. Deshalb wollte ich gerne TCP benutzen um Daten zu übertragen. Die Frage ist nur, ob ein TCP Server einen UDP Broadcast empfangen kann und auch diesen beantworten kann. Sind meiner Meinung nach ja 2 verschiedene Schuhe

Danke!
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19272
Erhaltene Danke: 1740

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Mi 02.01.13 21:42 
Nein, TCP und UDP sind zwei verschiedene Protokolle, die sind nicht gegeneinander austauschbar.

Du kannst aber problemlos parallel mehrere Server und/oder Clients beider Protokolle in einer Anwendung laufen lassen. Bezüglich der Zuverlässigkeit gab es bisher bei uns keine echten Probleme, insbesondere weil wir z.B. mehrfach mit Abständen Anfragepakete schicken. Selbst wenn dann eins verloren geht, kommt halt das nächste an.
Frolo Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 48



BeitragVerfasst: Mi 02.01.13 22:54 
Zwei verschiedene Server würde ich eigentlich gern vermeiden, weil ich dann schließlich zwei Ports reservierewn müsste und dann zweimal so ne blöde Firewallmeldung kommen würde. Ich muss gewährleisten, dass alles ankommt (Dateien, Text und Bytes).

Wie kann ich das denn machen?
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19272
Erhaltene Danke: 1740

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Mi 02.01.13 23:12 
Ich würde mir da nicht so viele Gedanken machen. Die meisten User klicken eh auf erlauben, wenn die Firewallmeldung von Windows kommt. Und wer eine andere Firewall hat, muss sich auch drum kümmern, wenn die das standardmäßig blockiert.

Klar ist:
Mit TCP geht kein Broadcast im eigentlichen Sinn (nur nacheinander alle IPs in der Range durchgehen, aber das dauert), mit UDP kommen nicht unbedingt alle Pakete an (das ist für Datentransfers z.B. daher absolut ungeeignet, auch wenn man die Pakete manuell sortieren kann).

Wenn du beides möchtest, musst du also auch beides nutzen...
Frolo Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 48



BeitragVerfasst: Mi 02.01.13 23:56 
Ja okay, ich werde das einfach mal so machen. Danke. Welche Ports (Zahl) würdet ihr für die UDP und die TCP Verbindung verwenden?
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19272
Erhaltene Danke: 1740

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Do 03.01.13 09:29 
Unter 10000 würde ich nicht nehmen, weil da viele Standardports dabei sind. Darüber sind die meisten in Ordnung, eine Liste findest du hier:
en.wikipedia.org/wik...and_UDP_port_numbers