Compiler findet Methode nicht

Ja Fragen habe ich schon, aber dadurch das die Klassen Custom sind wird es wohl schwer sie zu beantworten ^^

Also mein Server und der Client läuft jetzt reibungslos. Jetzt wollte ich versuchen zwei Clients miteinander kommunizieren zu lassen, aber ich glaub so wie ich es mir überlegt habe ist das alles sehr suboptional.
Aber naja werd ich noch ein wenig rumprobieren :/

Aber danke für alle eure Antworten :)
 
Vielleicht verräts du uns doch mal wie du es dir gedacht hast. Vielleicht ist der Grundgedanke ja garnicht so falsch und du hast nur bei der Umsetzung einen Fehler. Wenn allerdings das Grund-Konzept schon falsch ist wird es natürlich sehr schwer ... aber wir sind natürlich gerne bereit dir dabei so gut wir können zu helfen.

Eigentlich gibt es nur zwei Grundkonzepte
1) Kommunikation über den Server
2) dierekte Client-to-Client Kommunikation
 
Ja ich habe das Konzept der Kommunikation über den Server gewählt.
Da ich aber noch nicht so lange mit der Netzwekprogrammierung arbeite habe ich leider noch nicht so die Erfahrungen.
Naja bis jetzt habe ich es so gemacht, dass der Server immer auf eine neue Anfrage warte um dann einen neuen Thread zu erstellen. In dem Thread habe ich dann dieses Empfangen und Senden von Strings eingebaut.
Da ich keine Ahnung habe wie es möglich ist das ein Thread dem anderen Thread etwas in Form von einem String mitteilen kann, habe ich mir überlegt dies über eine externe Klasse zu machen in welcher sich eine ArrayList befindet. Aber ich glaube der Gedanke an sich ist schonmal falsch. Denn ich denke es ist bestimmt möglich eine Verbindung der beiden Threads herzustellen.

Naja mit der ArrayList ging es zwar bis jetzt auch(also beide haben die gleich ArrayList als Parameter übegeben bekommen und hatten somit immer die gleiche Liste abrufen können). Aber dann bin ich auf mein nächstes Problem gestoßen. Wie programmiere ich den Client so, dass er immer wenn der Server etwas sendet auch zuhört? Erst habe ich es mir so gedacht, dass ich einfach wie in der Spieleprogrammierung, eine schleife verwende welche immer prüft ob gerade etwas gesendet wird. Aber bei der Umsetzung hat das alles nicht so optimal geklappt und dadurch das ich die ganze Zeit den Gedanken im Kopf habe, dass es sowieso warscheinlich blödsinn ist das alles mit einer externen Klasse und einer ArrayList zu lösen bin ich gerade dabei mir etwas neues zu überlegen. Bis jetzt hab ich aber noch nichts gescheites gefunden :/

Mensch mensch mensch ... mit den ganzen Websprachen ist das so viel einfacher :D
Aber naja wenn man erstmal etwas in der Materie ist wird das hoffentlich schon.

Könnt ihr mir vieleicht einen Tipp geben wie es umsetzen kann?

Jetzige Stand:
- Ein Multiclientfähiger Server.
- Zwei EchoServer welche beide ein Objekt übergeben bekommen mit einer externen ArrayList

Was es am besten werden soll:
- Zwei Server die miteinander kommunizieren

Danke für alle Tipps und Tricks :)

MFG Noxum
 
Zuletzt bearbeitet:
Die Idee ist garnicht mal so falsch.
Was du richtig erkannt hast : du brauchst irgendwo EIN Objekt was für ALLE Clients gleich ist. Nur war deine Wahl des Objektes eher sub-optimal. In der Regel werden nämlich nicht die auszutauschenden Nachrichten in eine List gepackt sondern die Client-Threads *Achtung : du sprichst von zwei "Servern" die mit ein ander reden ... was du meinst sind aber nur zwei Client-Threads die über die EINE Server-Instanz mit ein ander kommunizieren*.

Auch wenn du mit dem Beispiel jetzt etwas Probleme bekommen wirst da du ja deine "zusammengeklebte" Socket/Stream-Klasse hast kann ich folgendes "Tutorial" nur bestens empfehlen
http://java.seite.net/chat/index.html
Das , was da beschrieben ist , ist zwar eigentlich ein Chat ... wenn du das ganze aber etwas abstrakter siehst ist eigentlich nichts weiter als das was du willst : mehrer Clients kommunizieren über einen Server.
Auch hier gibt es wieder verschiedene Konzepte :
1) Server-weiter Broadcast : alle Clients erhalten die von einem Client gesendete Nachricht , inklusive er selbst
2) Channel-weiter Broadcast : nur Mitglieder eines bestimmten Channels erhalten die Nachricht , dabei können mehrere von ein ander unabhängige Channels auf dem Server exisitieren , dadurch ist es möglich die Menge der Clients die eine bestimmte Nachricht die von einem bestimmten Client gesendet wird auch nur an die zu senden die diese empfangen sollen
3) dierekte Kommunikation : dabei teilt der sendene Client dem Server mit für welchen anderen Clienten die folgende Nachricht bestimmt ist , dabei wird diese Nachricht nur einfach an den Ziel-Client durchgereicht , es gibt kein Echo
Die 1te Grundform ist in dem Tutorial beschrieben welches ich die gelinkt habe. Für die Formen 2 und 3 braucht es dann noch zusätzliche logik um die man sicher aber erst kümmern sollte wenn man das Grundgerüst fertig hat da der Server nur erweitert , nicht aber in seiner bisheringen Form verändert wird.

btw : ein Echo-Server ist eine Sonderart : hierbei ist der Server zwar in der Lage mehrer Clienten gleichzeitig zu bedienen , jedoch reden diese nur mit sich selbst , eine Interkommunikation zwischen verschiedenen Clienten ist ausgeschlossen.

Ich hoffe ich konnte dir einen Denkanstoß geben.
Bei Problem , Fragen oder sonstigem frag hier lieber 2 mal bevor du es einmal falsch machst.
 
Zurück