Jupp, entweder die Länge wird vorher mit gesendet, bzw. ist vorher bekannt/statisch, oder es gibt eine "Ende"-Kennung, egal ob in den Daten oder mit Hilfe der Steuerleitungen (DCD, DTR, DSR, RTS, CTS und RI).
Ansonsten kannst du halt nur warten, ob nicht doch noch etwas kommt.
Alternativ vorher die maximal mögliche Zeit warten, wie lange eine Antwort dauern kann und danach dann einmal auslesen. (geht nur, wenn der Puffer des
COM-Ports groß genug ist)