Länge eines Char arrays recv()



  • hi@all

    ich möchte das ein socketserver etwas empfanngen soll was ein client gesendet hat. Dieser char array des empfängers soll exakt die länge haben wie der sender im sie geschickt hat.

    Sendeabschnitt

    rc=send(s,proz.c_str (),proz.length(),0);
    

    bei proz handelt es sich um einen string der auch exakt das sendet was in im steht. Dass problem ist dass ich als empfänger keinen string benutzen kann.

    Empfängerabschnitt

    rc=recv(connectedSocket,buffer2,50,0);
    

    hier habe ich weil ich keine andere möglich keit hatte die länge so eingetragen.

    wie kann ich also die länge eines char arrays ermitteln???



  • hallo

    das sollte eigentlich ganz einfach über

    int i = strlen(DEIN_ARRAY);
    

    zu regeln sein. 🙂

    greets



  • just-another-programmer schrieb:

    hallo

    das sollte eigentlich ganz einfach über

    int i = strlen(DEIN_ARRAY);
    

    zu regeln sein. 🙂

    greets

    Dabei musst du dich aber zuerst vergewissern, dass ein gültiger C-String vorliegt, also dass das Char-Array nullterminiert ist.



  • vieleicht so:

    #define GetArraySize(Array) (sizeof(Array)/sizeof(Array[0]))
    ...
    char Buffer[256]="";
    int rc=recv(connectedSocket,Buffer,GetArraySize(Buffer),0);
    

    Die Größe der empfangenen Daten steht in deinem Falle in rc.


Anmelden zum Antworten