(WinAPI) Winsock



  • Weil ich die Größe vor den Empfangen der eigendlichen Nachricht abfragen muss, habe ich sie an den Anfang eines char* vorangestellt. Somit kann ich erst die Größe der zulesenden Bytes lesen und den buffer dann auslesen. Leider funktioniert das nicht, kann mir einer helfen?

    hier der code:

    int bytecounter = 0;
            char* recbyte =  NULL;
    
            //Information der Größe auslesen
            if (recv (daMember[counter].Socket, (char*) &bytecounter, sizeof (int), 0) != sizeof (int))
            {
                //Socketerror zurückliefern
                return SOCKET_ERROR;
    
            }
    
            else
            {
                recbyte = new char [bytecounter];
                int n = recv (daMember[counter].Socket, recbyte, bytecounter, 0);
                char* probe = recbyte;
    
            }
    
            //UI- Struktur füllen
            memset (&userinformation, 0, sizeof (UI));
    
            //erstes Byte (BOOLEAN) des Empfangsbuffers in registry kopieren
            memcpy (&userinformation[counter].registry, recbyte, sizeof (bool));
    
            //für den Fall eines Gastzuganges
            if (userinformation[counter].registry == false)
            {
    
                userinformation[counter].nickname = new char [100];
                //Nicknamen rauskopieren
                memcpy (&userinformation[counter].nickname, recbyte + sizeof (bool), bytecounter - sizeof (bool));
                //userinformation[counter].nickname = "hallo";
                cout << &userinformation[counter].nickname << endl;
                cout << userinformation[counter].nickname << endl;
                daMember[counter].myuser = new char [bytecounter];
                memcpy (daMember[counter].myuser, userinformation[counter].nickname, bytecounter - sizeof (bool));
    
            }
    
            //ansonsten weitere Daten rauskopieren
            else 
            {
    
            }
    

    kann mir einer helfen ? wäre sehr nett.



  • Passt besser nach WinAPI.


Anmelden zum Antworten