verschiedene verbindugen managen



  • hallo, ich hab ein kleines problem.
    ich hoffe ihr koennt mir da weiterhelfen.

    ich beschränke mich auf drei pc´s

    einer soll als server fungieren die anderen beiden melden sich an.

    der server macht folgendes wenn sich ein client anmeldet

    void CNetzwerkClientKaSimDlg::OnAkzeptieren()    
    {	
       	client c;
    	c.SetParent(this);
    	clients.push_back(c);
    	int i=clients.size();
        ListenSocket.Accept(clients[i-1]);    
    
    }
    

    clients ist ein vector und im clients[0] ist dann der erste pc der sich anmeldet
    und im clients[1] dann der zweite.

    meine frage ist jetzt hier in diesem code

    void CNetzwerkClientKaSimDlg::OnEmpfangen()
    {	
       clients[0].nachrichtEmpfangen();
    
    }
    

    wenn ein client eine nachricht schickt. woher weiss ich welcher der beiden sockets es ist im vector. in diesem beispiel empfängt immer clients[0] die nachricht. ich weiss noch nicht genau wie man das so RICHTIG macht.

    meine frage ist woher kann ich wissen welches socket im vector jetzt das richtige ist?

    oder wie würdet ihr das jetzt händeln?
    aber bitte nicht zu kompliziert über 5 ecken oder so *g*

    viele grüsse
    und danke.



  • Das Event liefert Dir doch sicherlich noch irgendwas als Info mit ?



  • woher krieg ich den event??????

    also die nachrichten ansich haben info. wie zb. ip des clienten der die nachricht verschickt, die krieg ich aber erst nachdem das richtige socket die nachricht verarbeitet hat.(aber das sind nachrichten die der client macht)

    aber event? das wärs sicherlich hilfreich wenn da die ip stehen würde oder so dann könnte ich den vector durchlaufen und die passende von jedem socket kontrollieren.

    nochmal
    event?? wo und wie?

    beispielcode?

    mfg



  • => OnEmpfangen() Das da

    C++ kennt keine Sockets, keine IP Adressen oder sonst was in der Richtung. Daher kann man hier ein wenig raten 🤡

    Welches Os, welche Lip, welches Framework, welcher Compiler wird verwendet ?



  • also OnEmpfangen() wir von OnReceive() aufgerufen. da gibts nur einen errorcode

    ist wondows. und copiler kein plan aber ich glaube so ins detail brauch man da nicht gehen. gibt doch bestimmt ein "modell" wie man das macht.



  • In OnReceive kannst du this verwenden bzw. weitergeben.



  • und was mach ich dann mit this??
    hab

    this.
    

    geschrieben da kommt aber keine vervollständigung über methoden oder variablen.

    oder soll ich this mit den sockets im vector vergleichen??
    mfg



  • OMG du hast ja überhaupt keine Ahnung



  • ahja, hätte ich sonst hier gefragt?
    trotzdem,ich weiss schon was ein this zeiger ist.
    jedenfalls weiss ich nicht auf welche klasse der this zeiger zeigt, daher weiss ich auch nichts eben, oder wie du meintest hab keine ahnung.

    sos

    mfg



  • kann da keiner helfen?



  • trotzdem,ich weiss schon was ein this zeiger ist.
    jedenfalls weiss ich nicht auf welche klasse der this zeiger zeigt

    ziemlich widersprüchlich



  • ich meinte auf welchen objekttyp.

    naja wiedem auch sei. ich weiss jetzt wies geht.



  • schau dir mal FD_SET,FD_ZERO,select() und accept() statements an...http://www.zotteljedi.de/doc/socket-tipps/code.html
    mfg


Anmelden zum Antworten