# Client-Kommunikation ohne Server



## meladamo (9. Aug 2005)

Hallo Leute,

ich möchte 2 Clients dazu bringen, miteinander zu kommunizieren, ohne dass diese Kommunikation über einen Server stattfindet. Ist das überhaupt möglich? Ich habe zunächst an Sockets gedacht, aber dabei muss doch einer der beiden Clients als Server fungieren.

Danke im Voraus


----------



## KSG9|sebastian (9. Aug 2005)

wie willst du ne verbindung aufbauen ohne nen server der auf nen "request" wartet ? du kannst ja nicht einfach ins nirgendwo ne verbindung aufbauen...


----------



## meladamo (9. Aug 2005)

Ich habe mir das folgendermaßen überlegt:

Der eine Client meldet sich beim Server an, teilt ihm seine IP-Adresse mit. Der zweite Client loggt sich auch beim Server ein und teilt ihm ebenfalls seine IP mit. Der zweite Client holt sich die IP-Adresse des ersten Clients und baut eine Verbindung zu ihm. Aber soweit ich weiss muss doch der erste Client dem Kommunikationskanal lauschen. Also als Server hinter einem Port laufen. Was ich wissen wollte war, ob das auch anders geht. Also dass die beiden Clients miteinander kommunizieren können, wenn die IP-Adressen bekannt sind, ohne dass dabei einer als Server fungiert.


----------



## KSG9|sebastian (9. Aug 2005)

> Der eine Client meldet sich beim Server an



dachte du willst ohne server




> ..war, ob das auch anders geht. Also dass die beiden Clients miteinander kommunizieren können, wenn die IP-Adressen bekannt sind, ohne dass dabei einer als Server fungiert



Ich wüsste nicht wie. Normal läufts ja so ab:

IP Rechner1: 192.168.0.2
IP Rechner2: 192.168.0.3

- Rechner1 lauscht an Port 1234
- Rechner2 baut eine Verbindung mit Rechner1 über IP 192.168.0.2:1234 auf
- ServerSocket "läuft" weiter (serverSocket.accept()...) 
- Rechner2 bekommt aus dem ServerSocket nen Socket
- Dann wird los geschickt

Indirekt hast du aber nen Server


----------



## meladamo (9. Aug 2005)

KSG9|plak hat gesagt.:
			
		

> > Der eine Client meldet sich beim Server an
> 
> 
> 
> dachte du willst ohne server



Dieser Server dient nur dazu, damit die Clients sich einloggen und ihre IP-Adressen registrieren können. Die eigentliche Kommunikation läuft dann nicht über diesen Server, sondern direkt zwischen den beiden Clients. 



			
				KSG9|plak hat gesagt.:
			
		

> - Rechner1 lauscht an Port 1234



Das heisst ja, dass Rechner1 mit 
	
	
	
	





```
new ServerSocket(1234)
```
 einen Socket öffnet und lauscht. Also Rechner1 ist quasi wie ein Server. Aber genau das wollte ich nicht. Mir ist natürlich klar, dass es so geht. Aber meine Frage war, ob es auch anders geht oder ob das die einzige Möglichkeit ist?



			
				KSG9|plak hat gesagt.:
			
		

> - Rechner2 bekommt aus dem ServerSocket nen Socket



Das habe ich aber nicht so ganz verstanden. Was heisst denn aus einem ServerSocket einen Socket zu bekommen?


----------



## Bleiglanz (9. Aug 2005)

wenn bei dir ein server einer ist der an einem port lauscht, dann brauchst du wohl einen server

sonst kannst du überhaupt nie einen socket aufbauen!

das liegt an TCP, da kommst du nicht drum rum


----------



## KSG9|sebastian (9. Aug 2005)

*bg zugstimm*


----------



## Nick H. (9. Aug 2005)

stimmt genau es muss immer einen Server geben
sobald du eine Verbindung zu wem auch immer aubaust
ist derjenige automatisch der Server
da gibts nichts dran zu drehen

aber warum willst du überhaupt das keiner ein Server ist?
das bringt dir ja eigentlich gar nichts


----------

