# p2p Chat



## Guest (15. Nov 2007)

Hi...

Habe hier im Forum schon einiges über Chat's gelesen, jedoch sind diese auf dem Server - Client Prinzip aufgebaut.
Da ich aber für mein Vorhaben kein Server habe, würde ich gerne wissen, wie man einen Chat so realisieren kann(Die IP-Adressen sind bekannt), dass man keinen Server benötigt.

Ein Gedanke von mir ist, wenn man z. B. das Client-Server Script das Client-Server Script nimmt und den Client in einer Schleife ständig laufen lässt, bis man ihm mit einer Aktion stoppt, z.B. Buttonklick und dann das Server-Script ausführt.

Hoffe mein Gedanke ist nicht soooo abwägig...
Oder habt ihr bessere, bzw. effizientere Ideen?

Danke schoneinmal...


----------



## Guest (15. Nov 2007)

hups, Entchuldigung...
kann das mal einer in die "Netzwerkprogrammierung mit Java" verschieben, Danke...


----------



## madboy (16. Nov 2007)

Server bedeutet in dem Zusammenhang nicht sowas wie in Rechenzentren steht (was sich im Prinzip auch net so groß von "normalen" PCs unterscheidet übrigens)

Bei den Chat-Beispielen werden einfach zwei "normale" PCs verwendet und da "spielt" einer den Server und der andere Client. Server ist im Allgemeinen derjenige mit dem ServerSocket im Quellcode.

Ich hoffe mal, dich nicht missverstanden zu haben.


----------



## Guest (16. Nov 2007)

na das Problem was ich habe ist, das der einzelne PC sowohl als Server, als auch als Client fungieren soll...


----------



## madboy (16. Nov 2007)

Ok, da hab ich dich wohl wirklich falsch verstanden :wink: 



> Ein Gedanke von mir ist, wenn man z. B. das Client-Server Script das Client-Server Script nimmt und den Client in einer Schleife ständig laufen lässt, bis man ihm mit einer Aktion stoppt, z.B. Buttonklick und dann das Server-Script ausführt.


Du willst also auf jedem Rechner Client und Server gleichzeitig sein? Dazu fällt mir spontan ein: 
alle Rechner: Server läuft auf Port x.
Rechner A verbindet sich zu B, öffnet selber ServerSocket auf Port y und schickt zu B "hallo ich will chatten auf Port y"
Rechner B verbindet sich zu A auf Port y. 
Verbindung auf Port x wird getrennt und der Chat läuft über Port y.

=> der Server kann auf jedem Rechner ständig weiter laufen und trotzdem kann gechattet werden.

Der Vorteil gegenüber deiner Idee (wenn ich sie diesmal richtig verstanden habe) wäre, dass jeder mit mehreren Leuten gleichzeitig chatten könnte sofern die Sockets y verschieden sind.


----------



## Gast (16. Nov 2007)

jup, das hört sich sehr gut an, nur war meine Idee nur mit einem Port, aber so ist sie erweiterbar, ist auch nützlich...

Jetzt hapert es nur noch an der Umsetzung


----------



## Guest (16. Nov 2007)

so, hab emal ein wenig was versucht...
verbinden kann ich und es wird acu etwas hin und her geschickt...

jedoch habe ich ein Problem mit :

```
s = server.accept();
```

wie kann man es bewerkstelligen, dass das Programm beim starten im Hintergrund auf ankommende Verbindungen lauscht?
Im Moment ist es so, dass wenn ich das Programm starte, es erst auf eine Nachricht wartet, ich aber nichts weiter mit machen kann...


----------



## madboy (16. Nov 2007)

> ...Habe hier im Forum schon einiges über Chat's gelesen... http://www.java-forum.org/de/viewtopic.php?t=6033 ...


Ich habe das Gefühl, dass du das doch nicht so richtig gelesen hast...
Du Threads. Wird in dem von dir erwähnten Tutorial beschrieben.


----------



## Gast (16. Nov 2007)

na doch, gelesen schon, aber anscheinend nicht richtig verstanden...


----------



## Gast (17. Nov 2007)

müsste ich da den Serverteil mit in den Thread packen und eine Schleife um das RUN()?


----------

