Druid Geschrieben 27. Februar 2003 Geschrieben 27. Februar 2003 Hallo Forum, ich weiß ich schreib schon wieder, aber diesmal ist es eine Frage, die man nicht in einem Anfänger - Tutorial nachlesen kann... Folgende Situation: Ich habe einen Server in Java programmiert: ServerSocket s = new ServerSocket(8189); Socket incoming = s.Accept(); So weit so gut, ich habe auch schon die einzelnen eingehenden Client-Verbindungen einzelnen Threads zugeordnet... Ich will aber folgendes machen: Ein Client A überträgt eine Information an den Server und gibt gleichzeitig an, wohin die Information weiter soll... also gibt der Client A an, dass er die Information an Client B schicken will... Der Server erhält die Information von Client A und.... genau da setzt es beim mir aus Ich habe schon alle Vars, die ich brauche deklariert.. bloß, wie sag ich dem Server, dass da mehrere Clients sind und programmiere dass so, dass ein beliebiger Client X eine Information an einen beliebigen Client X senden kann? [und bitte keine blöden Andeutungen, dass ich schon wieder schreibe, denn wer nicht fragt, bleibt dumm und dumm sterben wollen wir alle nicht] MFG Druid :cool: Zitieren
bigredeyes Geschrieben 28. Februar 2003 Geschrieben 28. Februar 2003 bleibst du mir deinem client auf dem port hocken???? habe mal server-client mit c++ gemacht. grundvorraussetzung: eingehender port ist nur der port für 1. kontakt. dann wird client umgeleitet. z.b. irgendwas mit 12.xxx. jeder weitere bekommt 12.xxx++. usw... das muss aber auch dem client zurück geschickt werden! und halt einfach merken welcher nick auf welchem port hockt und dann per tcp raus damit(oder so ähnlich...)! hast du daran gedacht? sorry, wenn ja! bigredeyes Zitieren
Druid Geschrieben 5. März 2003 Autor Geschrieben 5. März 2003 mmhhh.. nein, daran habe ich noch nicht gedacht... wie leite ich die eingehenden Client-Verbindungen auf Sockets um? Ich habe schon probiert mit Hilfe von Hash - Tabellen das ganze zu lösen.. MFG Druid :cool: Zitieren
SgtBadAzz Geschrieben 5. März 2003 Geschrieben 5. März 2003 Originally posted by Druid mmhhh.. nein, daran habe ich noch nicht gedacht... wie leite ich die eingehenden Client-Verbindungen auf Sockets um? Ich habe schon probiert mit Hilfe von Hash - Tabellen das ganze zu lösen.. MFG Druid :cool: Du musst eine Art Protokoll definieren das dem Server sagt an wenn er denn die eingegangenen Informationen weiterschicken soll, und dann muessen ALLE Clients auch auf eigehende Verbindungen hören. D.h. Client X muss Informationen mitschicken and welchen Client Y das geschickt werden soll. Frank Zitieren
Jaraz Geschrieben 5. März 2003 Geschrieben 5. März 2003 Hi, alle Client Threads auf dem Server müssen regelmäßig checken, ob der Server eine neue Botschaft für sie hat. -Client1 schickt an Server Message für Client2 -Server schreibt Message in Hash mit Kennung von Client2 als Key -Thread auf dem Server für Client2 fragt regelmäßig Hash ab. -Befindet sich ne Nachricht im Hash, wird die ausgelesen und gesendet und die Nachricht gelöscht. Dieser Bereich muss synchronisiert werden, damit der Server nicht zwischen auslesen und löschen ne neue oder erweiterte Nachricht ins Hash schreibt. Als kleinen Tipp, würde ich mir mal RMI (Remote Method Invocation) anschauen. (Sozusagen ein Java internes Corba) http://java.sun.com/docs/books/tutorial/rmi/index.html Damit kannst du vom Client aus direkt Methoden auf dem Server ausführen und anders herum. Ist zwar vom Grundgerüst her deutlich komplizierter zu nutzen, aber der ganze selbstdefinierte Protokolloverhead entfällt. Gruß Jaraz Zitieren
Druid Geschrieben 6. März 2003 Autor Geschrieben 6. März 2003 Danke euch.. ich schau mir die RMI mal an, und ich hab im Inet ein Source von einem OpenSource IM-System gefunden, die lösen des auch wieder anders.. da scheints ja auch mehrere Möglichkeiten zu geben.. THX Druid :cool: Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.