Problem beim Senden mit CArchive



  • Hallo liebe Leuzz,
    mein Problem befasst sich mit CArchive, aber ich stellen jetzt erstmal meine Quelltextabschnitte rein, bei denen ich den Fehler vermute.

    CLIENT-Seite:

    void CeasyClientDlg::OnBnClickedSend()
    {
    	mp_senden = new CSocketFile(&m_client);
    	mp_arOut = new CArchive(mp_senden,CArchive::store);
    	(*mp_arOut).WriteString("Hallo Server\0"/*m_msg*/);
    	//UpdateData(true);
    
    	delete mp_arOut;
    	delete mp_senden;
    	OnOK();
    
    }
    

    SERVER-Seite

    void CServeranwendungDlg::OnReceive()
    {
    	CString test;
    	if(mp_arIn->ReadString(test))
    	{
    		m_ctlIncoming.AddString(test);
    	}
    
    }
    

    Mit diesen "Einstellungen" fuktioniert es zwar, aber sobald ich auf der CLIENT-Seite

    delete mp_arOut;
    	delete mp_senden;
    	OnOK();
    

    lösche, funktioniert es nicht mehr.

    Hattet ihr ein ähnliches Prob???

    Könnt ihr mir vll. helfen ???

    LG Chris



  • oke, ich hab jetzt noch was festegestellt...
    der client sendent erst dann, wenn alles (carchive,csocketfile,csocket) geschlossen wurde.
    aber das kanns doch nicht sein, dass ich erst die verbindung schließen muss, um etwas schreiben zu können, oder ???



  • du musst nachdem du in mit dem ins CArchive schreibein fertig bist

    mp_arOut.Flush();
    

    machen damit die daten losgeschickt werden



  • geht leider net...

    ich löschen dann mp_arOut.Open()
    und ersezte es mit mp_arOut.Flush()

    dann kommt es zwar zum server, der jetzt jedoch dann so änhlich wie eingefroren ist. erst wieder wenn ich den client schließe, dann werden die daten auf der server-seite angezeigt unn der server ist wieder im "normalzustand" (d.h.: nicht mehr eingefroren)

    ich schätze der server wartet auf etwas... :-\


Anmelden zum Antworten