Chat



  • hi

    hab nen kleines problem
    habe nen chat programm geschrieben
    wenn ich das 2x auf meinem pc starte und mich mit mir verbinde kann ich chatten genauso als wenn ich es mit 2pc's im netzwerk mache
    aber wenn ich es übers internet versuche funzt es nicht!!

    vllt könnt ihr mir helfen! wenn ihr den quellcode wollt müsst ihr mir eure mail adresse geben
    kann ich irgendwie herrausfinden ob es ein fehler beim verbinden gab und den mir anzeigen lassen?

    vllt kennt ja jmd das problem
    hiermit verbinde ich mich

    // Client, einen Standard-Socket erzeugen
    m_sConnectSocket.Create();
    // Verbindung zum Server öffnen
    m_sConnectSocket.Connect(m_strName, m_iPort);

    und hiermit höre ich
    // Server, einen Socket für den angegebenen Anschluß erzeugen
    m_sListenSocket.Create(m_iPort);
    // Auf Verbindungsgesuche hören
    m_sListenSocket.Listen();

    mfg
    cu



  • Hehe, das kenne ich doch. Visual C++ in 21 Tagen (Markt & Technik), das Ding habe ich auch mal durchgewerkelt.

    Ich denke, das ist weniger ein Problem mit dem Internet, als eine Netzwerkgeschichte. Das Internet ist nichts anderes als ein GROSSES Netzwerk, ein Rechner stellt die IP Anfragen im Internet, genauso wie er es im Netzwerk macht. Bei mir hat das übers Internet gefunzt, das Ding habe ich mit Funktionen vollgepumpt, irgendwann wollte es sich nicht mehr Builden lassen. Und nochmal Programmieren wollte ich das auch nicht. *Genug daran vorbeigequaselt*

    Du sagst, du hättest das im Netzwerk ausprobiert. Ich kann also davon ausgehen, dass ein Router bei Dir vorhanden ist, der Dich mit dem Internet verbindet. Und ich schätze mal (nein ich rate mal so ins blaue hinein), der Gesprächspartner besitzt ebenfalls einen Router, mit dem er ins Internet geht. Und ich hoffe, dass ich richtig geraten habe. Beim Programmieren haste ja den Port 4000 benutzt (habs grad nachgeschlagen), vielleicht wolltest Du einen anderen benutzen.

    Auf alle Fälle, der jenige, der den Server spielt MUSS den Port 4000 auf sich weitermappen. Das musste im Router einstellen. Da muss es in deinem Router ein Menü dafür geben.

    Gruß

    Markus Seidl

    PS: Wenn das stimmt, ist das weniger eine Frage fürs Visual C++ Forum 😉



  • Hm.. es ist eigentlich egal was du an router oder sonst noch was hast.
    Auf dem PC, wo der Server-Socket läuft sagst du ja den Port, z.B. 1111 dann muss du auch sicher stellen, dass keine Firewall auf dem PC deinen Port blockiert.

    Wenn du so weit bist, muss du nur noch wissen, welche IP der Server-Socket hat und
    sie deinem ClientSocket.Create(IP); übergeben. Es wird nur schwierig, da die IP beim jedem Einwahl sih ändert (fast immer).

    Kannst ja über dyndns eine feste IP holen, dann wirds halt einfacher.



  • Funktioniert das so einfach, ich meine, wenn ich einem Programm einen DNS namen übergebe, muss das Programm doch erst eine DNS Anfrage stellen, damit es die IP Adresse hinter diesem Namen bekommt.

    Ich dachte sowas müsste erst hinzuprogrammiert werden, oder wird das irgendwie über die MFC automatisch geregelt? 😕


Anmelden zum Antworten