Hauseigener Multiplayer (mplay) nur local nutzbar?

    • GM 8

    Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

    • Hauseigener Multiplayer (mplay) nur local nutzbar?

      Hallo liebe GM-D.de Gemeinde. :)
      Ich bin geade dran ein simples Chatprogramm zu schreiben. Das war ja auch schnell aufgebaut und funktioniert wunderbar im localen Netzwerk.
      Also wenn ich bei mplay_init_tcpip('') keine IP eingebe wird das locale Netzwerk verwendet. Da man aber ne IP und sogar ne web adresse angeben kann, muss ich doch schwer davon ausgehen das es auch extern (www) nutzbar ist.

      Das Grundprogramm wie ihr es bestimmt kennt habe ich bereits und funktioniert (wie bereits erwähnt) wunderbar. Eben nur local.
      Ich habe nun alles mögliche versucht als IP Adresse einzugeben.
      - Einmal habe ich meine eigene öffentliche IP angegeben (Google "Meine IP").
      - Dann Local mit meinem Router verbunden. 192.168.usw usw
      - Und die IPv4-Adresse.

      Da ich biede Rechner am selben Router habe (WLAN) ist es ja logisch das die beiden die selbe öffentliche IP haben.

      Egal was ich mache. Er findet keine session.

      Muss ich das vll. nochn Port angeben?
      Welche IP muss ich denn nun verwenden um Online zu gehen?
      Blockiert mein Router bzw Firewall das einloggen?
      Wie finde ich das heraus?

      Den Grund-SRC kennt ihr ja bereits. Hier der wichtige Teil meines Anliegens:

      Quellcode

      1. toip=get_string('IP?','');
      2. mplay_init_tcpip(toip);
      3. ...
      4. n=mplay_session_find(); //Rooms ist im Internet immer 0. Keine Session. Local funktionierts aber.


      Auch wenn ich die 39dll verwenden könnte, muss es aber rein prinzipiell mit den Boardeigenen Mitteln gehen.
      >>> Dies soll eine Signatur darstellen und ebenso den Zweck entfremden wie so oft in Foren. Dieser wäre den Leser über eine Kontaktaufnahme zu informieren. In der Paxis wird dieser aber verwendet um so halbwitzige bis überhaupt nicht komische Kommentare wie dieser zu verbreiten. Immerhin frisst dieser Signatur ausnahmsweise kein großen Platz weg.

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von DGML ()

    • Wohl zu anspruchsvoll? ^^
      Sowohl der interne Multiplayer als auch die 39dll sind für Kommunikationen außerhalb des Intranets ausgelegt.
      Ich habe den Grund aber noch nicht ganz verstanden warum der interne des Game Makers nicht einfach funktioniert. Und warum die 39dll es doch leichter kann.
      Gibts da ihrendwelche Traceprogramme um die Verbindung des GM-Programms verfolgen zu können. Um z.B. rauszufinden ob die Verbindung geblockt wurde.
      Kennt sich denn niemand damit aus? :/
      >>> Dies soll eine Signatur darstellen und ebenso den Zweck entfremden wie so oft in Foren. Dieser wäre den Leser über eine Kontaktaufnahme zu informieren. In der Paxis wird dieser aber verwendet um so halbwitzige bis überhaupt nicht komische Kommentare wie dieser zu verbreiten. Immerhin frisst dieser Signatur ausnahmsweise kein großen Platz weg.
    • Es gibt auf jeden Fall Ports die freizuschalten sind.

      Beim anlegen der Session muss ein Port angegeben werden und beim Connect dann natürlich ebenso. Dieser Port ist die Identifikation an welchen Rechner im Netz nachher das Signal von außerhalb weitergeleitet wird.
    • Das Problem an den Internen Funktionen ist, dass sie, genau wie BlaXun bereits gesagt hat, mehrere Portfreigaben benötigen. Bei der 39dll, reicht es (zumindest fürs TCP Protokoll), wenn nur der Port, auf dem der Server gehostet wird freigegeben ist. Bie den internen Funktionen wiederrum sind das 1. eine ganze Menge Ports (die Funktionen benutzen das ziemlich veraltete DirectPlay, welches zufällig Ports im 2000er Bereich verwendet) und 2. müssen sowohl Server als auch Client diese Ports freigegeben haben.

      © 2008 by Teamgrill Productions
    • Table of ports used by DirectPlay
      (taken from the DirectX SDK)
      The following chart shows which ports an administrator needs to open for a given desired style of play for applications using the dynamic range of DirectPlay.

      Connection Client configuration Host configuration
      Initial TCP Connection 47624 Outbound 47624 Inbound
      Subsequent Inbound TCP Connections 2300-2400 2300-2400
      Subsequent Outbound TCP Connections 2300-2400 2300-2400
      Subsequent Inbound UDP Connections 2300-2400 2300-2400
      Subsequent Outbound UDP Connections 2300-2400 2300-2400
    • Ok, danke euch.
      Also wird doch blockiert.
      Man hat also folgende Möglichkeiten:
      Wie bei einigen commerziellen Spielen kann man bei der Installation des Programms die Firewall für das Programm einrichten lassen. Ist aber auch nur eine Notlösung.
      Immerhin wird mit jeden freien Port der PC etwas unsicherer. Das Risiko wächst.
      Oder hab ich das richtig verstanden das Port 47624 von DX sowieso frei ist. (Ich teste das mal).

      Wie macht das nochmal 39dll? Die greift ja auf APIs zu oder nicht? Schaltet die temporär ein Port frei?

      EDIT2(del):
      GELÖST: Port 6969 funktioniert.
      >>> Dies soll eine Signatur darstellen und ebenso den Zweck entfremden wie so oft in Foren. Dieser wäre den Leser über eine Kontaktaufnahme zu informieren. In der Paxis wird dieser aber verwendet um so halbwitzige bis überhaupt nicht komische Kommentare wie dieser zu verbreiten. Immerhin frisst dieser Signatur ausnahmsweise kein großen Platz weg.

      Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von DGML ()

    • Bei der 39dll gibst du für das öffnen der Verbindung und das herstellen einer Verbindung einen Port an der dafür genutzt wird. Immer noch "unsicher", aber nicht so unsicher wie immer dieselbe große "Fläche" an geöffneten Ports.
    • Die von mir oben genannte Lösung wurde bislang noch nicht über öffentliche IPs getestet.
      Mit 192.168 funktionierts aber.
      >>> Dies soll eine Signatur darstellen und ebenso den Zweck entfremden wie so oft in Foren. Dieser wäre den Leser über eine Kontaktaufnahme zu informieren. In der Paxis wird dieser aber verwendet um so halbwitzige bis überhaupt nicht komische Kommentare wie dieser zu verbreiten. Immerhin frisst dieser Signatur ausnahmsweise kein großen Platz weg.