# Spiel über Netzwerk.



## SchachFritz (7. Okt 2005)

Guten Tag, 

Ich bin dabei ein Kartenspiel zu programmieren. Es soll möglich sein, dass die Spieler über das lokale Netzwerk gegeneinander spielen können. Ein Problem das ich dabei habe ist, dass ich keinen festen Server habe. Daher müsste der erste der das Spiel startet als Server fungieren

Allerdings weiss ich nicht wie das gehen soll ohne, dass die anderen Spieler die IP Adresse des server-spielenden Pc eingeben müssen. 

Oder gibt es noch einen andere Möglichkeit dies zu bewerkstelligen. Es handelt sich jediglich um ein lokales Netzwerk und nicht um eine Webapplikation. 

Da es auf verschiedenen Netzwerken spielbar sein soll,  muss der Server automatisch festgelegt werden. 

Ich hoffe einer von euch kann mir dabei behilflich sein. 

Danke im Voraus.


----------



## Sky (7. Okt 2005)

Du musst an einer zentralen Stelle in diesem lokalem Netzwerk ablegen (dazu gibt es viele Möglichkeiten), wer Server ist. 
Ein Spiel, welches sich startet guck nach, wer Server ist. Falls noch keiner Server da ist, so wird er selbst zum Server.


----------



## SchachFritz (7. Okt 2005)

Erstmal danke für deine Hilfe. 

Ich habe mir schon gedacht, dass es so eine Möglichkeit gibt. Allerdings weiss ich nicht genau wie ich das implementieren soll. Ich bin mit Google auf broadcasting gestossen. 

Kann mir einer erklären wie das genau funktioniert?

Danke


----------



## Bleiglanz (7. Okt 2005)

beim start schickt man eine Broadcast UDP Nachricht ans "Netz", d.h. an "alle Rechner im LAN"

wenn keine Antwort (ebenfalls per UDP) einläuft, ist man selber der server (und antwortet in Zukuft auf solche "Suchanfragen"

wenn eine Antwort einläuft, ist im Antwort-Paket die IP Adresse des aktuellen Servers enthalten

die Clients müssen also zumindest noch die verwendete Portnummer kennen


----------



## Nick H. (7. Okt 2005)

aber woher weiß man welche Rechner alle im LAN sind?


----------



## Bleiglanz (8. Okt 2005)

darum heisst's ja broadcast!

in einem 192.168.*.* Netz, d.h. mit Maske 255.255.0.0 kannst du ein paket an 

192.168.255.255

schicken -> das kriegen dann alle


----------



## Nick H. (8. Okt 2005)

ah!

danke! das wird noch nützlich sein


----------



## drcreep (8. Okt 2005)

Hi!

Jeder der in _Codeschnipsel u. Projekte_ geschaut hätte, wäre auf den folgenden Thread gestossen: FindServers - Server im LAN finden!

Das ist eine Klasse, die ich schon vor Ewigkeiten mal implementiert habe! Das dürfte genau das richtige für euch sein! 
Vollkommen frei und umsonst!! 
Natürlich möchte ich das fertige Projekt sehen, wenn ihr das Ganze verwenden solltet! :wink:

DrCreep


----------

