über den Gültikeitsbereich



  • Hallo,
    mein Problem ist:
    Ich will über einen Button eine Verbindung aufbauen können, die dann auch bestehen bleibt. Mit einem zweiten Button möchte ich dann Texte verschicken können.

    void CTestNetz2Dlg::OnBnClickedButton1()
    {
    	CSocket client;
    	CString nachricht = "Hallo Server";
    	client.Create();
    	client.Connect("127.0.0.1",555);
    	CSocketFile socketfile(&client);
    	CArchive arOut(&socketfile,CArchive::store);
    	arOut.WriteString("Hallo Server");
    	//arOut << 1234;
    }
    

    Hier wird doch das CSocket Objekt nach beenden dieser Funktion wieder zerstört.
    Wie kann ich jedoch das Zerstören verhindern. Ich möchte dazu kein globalse Objekt benutzen. Gibts noch andere Möglichkeiten ???

    LG Chris



  • Pack die Zeile

    CSocket client;
    

    in die Headerdatei.

    Und guck bei Gelegenheit mal nach, was eine Membervariable ist - das erstellst du da nämlich. 🙂



  • das will er nicht...es kommt zwar keine fehlermeldung, allerdings baut er dann keine verbindung mehr auf...



  • Oh... 😕

    Schade, mit Sockets kenne ich mich auch überhaupt nicht aus. Da habe ich keine Ahnung, was dir da grade einen Strich durch die Rechnung macht. Theoretisch hätte das funktionieren müssen. 😞



  • blackworm schrieb:

    das will er nicht...es kommt zwar keine fehlermeldung, allerdings baut er dann keine verbindung mehr auf...

    was will 'er' nicht?

    'CSocket client' als private member in der Dlg-Klasse deklarieren... und dann in einer beliebigen Methode die funktionen von CSocket aufrufen.



  • ja, also er baut erst die verbindung auf, wenn ich den ok-button der hauptdialogs tätige...
    also, wie kann ich denn den hauptdialog "updaten" ???



  • Wenn ich das richtig verstehe, solltest du nochmal über die Stellen, wo du wann welchen Code ausführen läßt, nachdenken.

    Kannst du die Verbindung nicht zu einem anderen Zeitpunkt erstellen als im OnOK des Hauptdialoges? Welche anderen Stellen sind geeignet.
    Was macht der zweite Dialog? Braucht der die Verbindung? usw.

    Denk mal drüber nach, vielleicht klärt sich dann einiges. 🙂



  • Mal ehrlich.
    Wieviele Programme hast du vor diesem geschrieben?
    Jeder hier wird dir sagen das Du erst die Grundlagen kennen solltest bevor Du dich an die MFC wagst.
    Wenn wir jetzt anfangen würden mit abgeleiteter Klasse vom CAsyncSocket, etc. würdes Du nichts verstehen wenn Du den Gültigkeitsbereich von Variablen nicht kennst bzw. nicht weißt was Membervariablen sind.
    Nicht persönlich nehmen.


Log in to reply