TCP und UDP verbinden?

Ljonja2107

Mitglied
Moin, gibt es eine Möglichkeit, dass ich die beiden Protokolle wie folgt verbinde?
Ich habe ein Chatprogramm (TCP) und ein Server und ein Client verbindet sich über einen Port.
Nun möchte ich eine Onlinestatusanzeige implementieren.
Über TCP können sich nur 2 verbinden und über UDP sollen sich alle anmelden können und eine Chatanfrage stellen.
Wenn diese angenommen wird, dann wird die Verbindung unterbrochen zwischen den vorherigen Chattern und eine neue Verbindung wird aufgebaut (in der dann auch z.B. der Client zum Server werden muss).
 

Robert Zenz

Top Contributor
Wieso? (Frage ich das in letzter Zeit haeufiger?) Nein, echt, wieso?!

Wieso willst du das so machen und trennen, das ergibt keinen Sinn. Ist das eine Uebung oder eine Aufgabe von jemandem? Also das so zu implementieren auf einem normalen System ergibt keinerlei Sinn, meiner Meinung nach. Das klingt nur nach Komplexitaet die unnoetig ist.
 

Robert Zenz

Top Contributor
Oohhhkay...okay.

Also wenn ich das richtig verstehe, dann willst du einen TCP Kanal zwischen zwei Leuten, und die koennen UDP-Pakete empfangen fuer Anfragen und dann auf die andere Gegenstelle umschwenken. Wenn ich mich richtig erinnere, und da wuerde ich nicht darauf wetten, koennen Sockets sowohl TCP als auch UDP empfangen, also du musst eigentlich auf Java Ebene nur unterscheiden ob es eine Nachricht von der Gegenstelle ist, oder eine Anfrage von einem anderen. Aber da bin ich mir gerade nicht sicher.
 

Ljonja2107

Mitglied
Nicht ganz, der Nachrichtenaustausch läuft über TCP(damit keine Datenpakete verloren gehen) und mit der UDP Verbindung will ich quasi nur anzeigen, dass die beiden grade verbunden sind.Anhand der Anzeige, dass jemand Online ist kann ich dann Anfragen, ob jemand einen neuen Chat starten will (auch die, die schon am chatten sind). Falls die dann akzeptieren, dann müsste ja möglicherweise ein Client die Serverrolle übernehmen, da der vorherige Client mit der Serverrolle vielleicht offline gegangen ist. War das verständlich ?
Sind 2 verschiedene Themen, einmal Statusanzeige/Verbindungsanzeige und dann das switchen zwischen den Clients und Serverrollen.
 

Jw456

Top Contributor
Hallo
Also ich verstehe das etwa so.
Jeder Teilnehmer wenn er online ist wäre also einmal

TCP Server der auf anfragen zum Chat wartet.
Ein UTP Broadcast, Multicast, Cient der seinen Status in regelmäßigen abständen kund tut.
Da Du ja auch UTP Broadcast, Multicast nachrichten empfangen willst müsstest du auch Server sein.

Fragst du einen Teilnehmer an zum Chat wird wider ein Port geöffnet der sich zu dem Teilnehmer verbindet.

Bist du schon in Chat und ein zweiter kommt hinzu braucht der TCP Server doch nur alle Nachrichten auch an den zweiten weiter zuschicken.
Dazu halte in einer liste alle verbundnen Sockets.
Geht ein Teilnehmer offline wird er auf dem Server aus der Client-Socket Liste entfernt und die Unterhaltung geht alleine weiter.


Du willst ja ohne einen Zentralen Server arbeiten.
 
Zuletzt bearbeitet:

Ähnliche Java Themen


Oben