Entwickler-Ecke
Internet / Netzwerk - Das Prinzip des Netzwerkspiels
Marco D. - Do 08.12.05 21:46
Titel: Das Prinzip des Netzwerkspiels
Könnt ihr mir mal erklären, wie das Prinzip des Netzwerkspiels funktiniert? Ich meine, wenn ich 'Ein Spiel hosten' will (Zitat aus Blobby Volley) dann muss ich keinen Port angeben. Woher weiß denn der Client, der nach einem Server sucht, wo der Server wartet? Probiert er alle Ports durch oder wie macht er das? Meiner Meinung nach, lässt sich das nur über die Angabe des Ports realisieren. Dann müssten sich beide Teilnehmer eben über die Portnummer verständigen.
Auch weiß ich nicht wie es geht, dass der Client alle verfgbaren Spiele auflistet.
Hoffe, jemadn kennt sich da aus und hat selbst schon mal sowas gemacht und kann dann aus eigener Erfahrung reden wie man ein Netzwerkspiel realisiert.
KOLLER
Ironwulf - Do 08.12.05 21:57
Naja, man kann doch den port fets in der exe einstelln z.b. bei der tcp, dxplay, komponente, ich behaupte sogar fast das das bei allen komponenten einstellbar ist die irgendwie was min netzwerk zutun haben
Marco D. - Fr 09.12.05 15:38
Das is ja klar.
Aber wenn mehrere Spieler in einem Netzwerk spielen, dann werden doch mehrere Ports benötigt, da ja pro port nur ein Server möglich ist.
Grendel - Fr 09.12.05 15:43
Koller hat folgendes geschrieben: |
Das is ja klar.
Aber wenn mehrere Spieler in einem Netzwerk spielen, dann werden doch mehrere Ports benötigt, da ja pro port nur ein Server möglich ist. |
Nein, jeder Client braucht nur einen Port (man kann auch mit mehreren arbeiten ist aber nicht nötig) über den er eine Verbindung zum Server-Port herstellt. Und ein Server kann auf einem Port durchaus mehrere Clients "bedienen".
Bis neulich ...
Marco D. - Fr 09.12.05 15:54
Das stimmt ja auch wieder.
Nur was passiert wenn 2 Mann zur gleichen Zeit 'Ein Spiel hosten'? Werden dann nicht 2 Server aktiviert? Zum Beispiel zwei Serversockets?
Grendel - Fr 09.12.05 15:58
Koller hat folgendes geschrieben: |
| Nur was passiert wenn 2 Mann zur gleichen Zeit 'Ein Spiel hosten'? Werden dann nicht 2 Server aktiviert? Zum Beispiel zwei Serversockets? |
Klar, dann werden 2 Server aktiviert. Nur, da wohl kaum 2 Mann zur gleichen Zeit auf der gleichen Maschine den gleichen Server starten ist das doch kein Problem. Und wenn die Server auf unterschiedlichen Rechnern laufen ist es erst recht kein Problem, da die Kombination aus IP + Port eindeutig ist.
Oder hab ich dein Problem nicht richtig verstanden?!
edit: Es ist nicht möglich (d.h. es ist eigentlich schon möglich aber selten sinnvoll. Siehe: SO_REUSEADDR), daß auf ein und derselben Maschine zwei Server auf der Selben IP und dem selben Port lauschen. Der Versuch den zweiten Server zu starten wird dann beim "bind()" fehlschlagen, da der Port eben schon belegt ist.
Bis neulich ...
Marco D. - Fr 09.12.05 16:08
Ich meine zum Beispiel in unserer Schule im Computerkabinett wird viel Blobby Volley gespielt. Auch vernetzt.
:gruebel: Kann man denn in einem Netzwerk auf verschiedenen Rechnern auf dem gleichen Port einen Server eröffnen? (z.B. Serversocket)
Ironwulf - Fr 09.12.05 16:13
jop, ich hab zwar ewig nimmer blobbey volley gepsielt und auch noch nie im netzwerk aber ich geh mal davon aus, das man auch dort als client noch die ip des servers eingeben muss und somit kann es dann nicht zu konfliketen kommen
Grendel - Fr 09.12.05 16:34
Koller hat folgendes geschrieben: |
| :gruebel: Kann man denn in einem Netzwerk auf verschiedenen Rechnern auf dem gleichen Port einen Server eröffnen? (z.B. Serversocket) |
Ja, definitiv. Interessant ist nur die Kombination aus IP + Port. Diese muss eindeutig sein. Und, wie Ironwulf schon schrieb, muss der Client zum Verbinden eben nicht nur den Port des Servers sondern auch dessen IP kennen.
Bis neulich ...
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!