Bitmaps via Sockets



  • hey ich möchte gern ein Screenshot von meinem Desktop machen, und das dann über Sockets übertragen. Ich möchte den Screenshot aber nicht erst in einer Datei speichern (ok würde auch gehn), sondern (ich glaube das geht mit HBitmap oder so) eben diese HBitmapdaten direkt über den Socket schicken.

    Wie kann ich das machen???



  • Ich möchte eine Struktur über Sockets versenden!!
    Dafür benutze ich folgende Strukturen;

    struct info{
        int type;
        char *data;
    };
    
    struct testit{
        char name[20];
        char vorname[20];
        int alter;
    };
    

    Um sie zu versenden benötige ich char array, also konvertiere ich die Strukturen:

    struct testit testi;
    strcpy(testi.name,"Duke");
    strcpy(testi.vorname,"Matthias");
    testi.alter = 20;
    
    struct info data;
    data.type = 1;
    data.data = (char*)&testi;
    
    char *buffer = (char*)&data;
    

    anschliessend versende ich den String!!
    Nun meine Frage wie konvertier ich den Kram wieder zurück?
    Und wie mach ich das wenn ich andere Daten versende, denn ich habe extra die struktur info angelegt, um über den type zu entscheiden was ich versende, aber wie gross muss ich mein empfangsbuffer einstellen, oder kann ich den auch dynamisch anlegen? wenn ja wie?



  • 😕

    Wer ist hier jetzt für den Thread verantwortlich.

    Empfangsbuffer <= 1024
    reicht aus



  • Ich weiss net wer Timo ist allerdings hab ich das gleiche problem!!!
    anstatt meiner structur brauch er ja nur sein bild versenden!!!

    also ich hab das jetzt etwas um geschrieben:

    struct info{
        int type;
        int size;
    };
    
    struct testit{
        char name[20];
        char vorname[20];
        int alter;
    };
    
            const int size = sizeof( info) + sizeof( testit);
            char buffer[ size ];
    
            struct info *data = ( struct info *) buffer;
            struct testit *testi = ( struct testit *) buffer + sizeof( struct info);
    
            data->type = 1;
            data->size = sizeof( struct testit);
    
            strcpy(testi->name,"Duke");
            strcpy(testi->vorname,"Matthias");
            testi->alter = 20;
    
            sende = server.Send( fd, buffer, sizeof( buffer));
            printf("Sende: Paket %i\n",i++);
    

    aber sobald ich an die stelle: "strcpy(testi->name,"Duke");" komme, bekomm ich ein ausnahmefehler!! WARUM ?

    Bei der Struktur info bekomm ich eine grösse von 8, und bei testit 44.
    und wenn ich ein 20 langen string kopiere, muss das doch passen !?

    Mit "memcpy" hab ich es auch schon versucht !!!



  • Mit der String übertragung in der Struktur Testit hab ich echt Probleme.
    Ich hab jetzt mal direkt in jedes feld des CharArray geschrieben testi->name[0] = 'M'; ... so bekomme ich zwar keinen ausnahmefehler, aber was brauchbares bekomm ich auch nicht übertragen.

    Wo ist da mein Denkfehler ???

    Ich brauch eure HILFE!



  • d.h. ich bekomm alles außer den CharArrays übertragen. muss dafür aber das alter in testit als erstes defenieren.


Anmelden zum Antworten