Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

Thoran

Alter Hase

Beiträge: 520

Wohnort: Stuttgart

Beruf: Senior Software Engineer

  • Private Nachricht senden

11

13.04.2016, 09:47

Ich würde davon ausgehen, dass die meisten diese Funktion deaktiviert haben.
Dann liegst Du falsch ;)

Alle Router die ich bisher gesehen habe, hatten die UPNP-Funktion deaktiviert, d.h. man musste sie erst explizit einschalten. Ist das zwischenzeitlich anders? UPNP ist ja durchaus sicherheitstechnisch nicht unkritisch.

Edit: Selbst meine 6 Monate alte Fritzbox hatte UPNP deaktiviert. Damit würde ein Ansatz für den Gameserver über UPNP bei mir schon mal nicht funktionieren. Bei meinen vorherigen Router von Asus und TP-Link war es genauso. Du kannst ja nochmals über deine Aussage nachdenken.
Mein Entwicklertagebuch
Aktuelles Projekt: Universum Espionage
Eingestellt:Spieleengine SilverCore
Organisator "Spieleentwickler Stammtisch Stuttgart"

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Thoran« (13.04.2016, 09:54)


12

13.04.2016, 12:51

Wie wäre es mit einer Anleitung, wie man Port-Forwarding konfiguriert? Ist natürlich komplizierter für die Nutzer, als wenn es einfach so funktioniert, aber je nach Spiel ausreichend. Oder UDP verwenden, das müsste eigentlich funktionieren (einfach die Adresse und den Port an den jeweils anderen Teilnehmer weitergeben über einen zentralen Server). Oder die Kommunikation über deinen Server laufen lassen.
Cube Universe
Entdecke fremde Welten auf deiner epischen Reise durchs Universum.

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

13

13.04.2016, 17:38

Du kannst ja nochmals über deine Aussage nachdenken.
Kann ich wohl machen, wird an meiner Aussage aber nichts ändern. Beweis am Beispiel hat noch nie so richtig funktioniert.
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

Schrompf

Alter Hase

Beiträge: 1 470

Wohnort: Dresden

Beruf: Softwareentwickler

  • Private Nachricht senden

14

14.04.2016, 09:47

Wie wäre es mit einer Anleitung, wie man Port-Forwarding konfiguriert? Ist natürlich komplizierter für die Nutzer, als wenn es einfach so funktioniert, aber je nach Spiel ausreichend. Oder UDP verwenden, das müsste eigentlich funktionieren (einfach die Adresse und den Port an den jeweils anderen Teilnehmer weitergeben über einen zentralen Server). Oder die Kommunikation über deinen Server laufen lassen.


UDP braucht genauso Port Forwarding wie TCP, damit ein Rechner hinter einem NAT (also z.B. einem Router) erreichbar ist.

Mit IPV6 hat sich das theoretisch erledigt, weil dann alle Geräte auch innerhalb des Netzwerks eine weltweit einmalige ID haben. Aber die Leute haben inzwischen dazugelernt und lassen nicht mehr jeden beliebigen Traffic durch, nur weil's geht. Der Nutzer muss also auch bei IPV6 irgendeine Art von Ermächtigung erteilen, damit ein Rechner hinter einem Router von außen erreichbar ist. Und da kommt dann wieder UPNP ins Spiel.

Ich hab neulich in einem UPNP-From-Scratch-Projekt mitgearbeitet. Und ein vollwertiges UPNP ist ein hartes Stück Arbeit. Die Minimalversion, die einen einzelnen Request abschickt, sollte aber deutlich leichter gehen. Theoretisch ist das nur ein Stapel HTTP-Requests, die man mit libcurl oder den Bordmitteln der jeweiligen Programmiersprache abschickt, und ein bisschen XML-Parsing. Ob und wie das bei den Routern auf diesem Planeten aktiviert ist, wie die Metadiskussion hier zu ergründen sucht, kann ich aber nicht beurteilen.
Häuptling von Dreamworlds. Baut aktuell an nichts konkretem, weil das Vollzeitangestelltenverhältnis ihn fest im Griff hat. Baut daneben nur noch sehr selten an der Open Asset Import Library mit.

15

15.04.2016, 09:00

Aber wenn ich vom Client aus an einen Server ein UDP-Paket sende, dann kennt doch der Server meine Adresse und den Port, an den er seine Antwort senden kann, also müsste er diese Informationen doch auch an den anderen Client weitergeben können und dann müssten doch die Clients untereinander kommunizieren können. Oder filtern das die Router dann raus, weil es von einer anderen Adresse kommt?
Cube Universe
Entdecke fremde Welten auf deiner epischen Reise durchs Universum.

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

16

15.04.2016, 10:12

Also erstens kennt Dein Client nur die lokale Adresse Deines Rechners im LAN/WLAN. Deine public IP kennt er gar nicht, denn der Router besitzt diese public IP und nicht Dein Rechner. Zweitens kommt ein externer Client auch nicht durch Deinen Router durch, selbst wenn er die IP des Routers kennt. Genau dafür ist eben UPnP interessant, damit dem Router mitgeteilt wird, dass gewisse Pakete auf gewissen Ports zu einem Ziel-Rechner im internen Netz weitergeleitet werden sollen. Diese Funktion kann (muss aber nicht) durchaus deaktiviert sein und damit sitzt Du hinter einer Firewall und da kommt von außen nichts durch.
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

equinox

Frischling

  • »equinox« ist der Autor dieses Themas

Beiträge: 56

Beruf: Student

  • Private Nachricht senden

17

15.04.2016, 12:11

Also um mich als Threadersteller nochmal zurückzumelden:

Ich habe mittlerweile einige gute Ansätze für UDP Hole-Punching gefunden, von denen ich einen am implementieren bin (Mal sehen wie schnell das fertig wird :)).
Und so wie ich das verstehe ist, das was Magogan sagte durchaus korrekt. Durch einen bekannten zugänglichen dritten Server können eben die IP und Port Informationen an andere Teilnehmer weritergeleitet werden, die diese ansprechen können.
Das ganze scheint bei UDP aufgrund der Natur von UDP (verbindungslos) einfacher zu sein als mit TCP.

Aber bitte korrigiert mich, wenn ich da etwas komplett falsch verstanden habe.

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

18

15.04.2016, 13:04

Wenn der Router es nicht durch lässt, lässt der Router es nicht durch. Da nützt Dir auch die Info darüber nix, wo das Ziel ist. Aber das ist eine Frage des jeweiligen Routers. Bei UDP-System-bedingt einfacher als bei TCP.
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von »BlueCobold« (15.04.2016, 13:17)


Werbeanzeige