winsocks



  • hallo,

    ich habe von c-worker.ch dieses codeschnipsel:

    send(tosocket, msg, sizeof(msg), 0)
    recv(tosocket, msg, sizeof(msg), 0))
    

    zum senden und zum empfangen von strings... allerdings muss msg ein buffer von konstanter groesse sein...
    wie kann ich nun variabel grosse strings versenden?



  • wenn ich das richtig verstehe muss der buffer bei server und client gleich groß sein oder?
    dann schick doch einfach einen integer der die größe des kommenden strings enthält

    pseudocode

    server:
    std::string blabla = "juhuhuhuhuhu";
    send(tosocket, blabla.size(), sizeof(size_t), 0)
    send(tosocket, blabla.c_str(), sizeof(blabla.c_str()), 0)
    
    client:
    size_t size_from_server;
    recv(tosocket, &server, sizeof(size_t), 0);
    
    char* blabla;
    recv(tosocket, blabla, sizeof(char)*size_from_server, 0);
    

Anmelden zum Antworten