recvfrom Datenlänge



  • Hallo,

    kennt jemand eine Möglichkeit, die Länge eines Paketes vor dem recfrom() zu erfragen. Ich habe das Problem, das ich überhaupt nicht weiß, ob das UDP Paket nun 2 oder 10000 Byte lang ist und müsste ansonsten immer "zur Vorsicht" 10000 Byte bereitstellen.
    Es kommen aber nur 2% Pakete mit 20000 Byte an 😞

    Danke schonmal

    Tom



  • http://man.linuxquestions.org/?query=recvfrom&section=0&type=2

    gib einfach genug buffer hin, dann kriegst du auch alles.



  • Danke für den Tipp,

    aber damit habe ich dann leider das Problem, das ich bei 98% der ankommenden Pakete 99998 Byte verschenke.

    Ich habe z.Z. zwei Möglichkeiten:

    1. Ich lösche den Buffer später wieder und kopiere die Daten vorher in ein Feld passender Größe, mit dem ich weitermache (meine aktuelle Lösung)
    2. Ich nehme den "exorbitanten" Speicherverbrauch in Kauf und arbeite mit den Orignaldaten weiter.

    Leider kommen die Riesenpakte oft recht burstartig, womit die erste Lösung eine riesige Kopierorgie in Gang setzt, die ich zu vermeiden versuche.


Anmelden zum Antworten