Scrivere i pacchetti su un file temporaneo è una sciocchezza, la situazione è identica che con un file normale.
Io scriverei i su file i blocchi che ricevi senza farmi troppi problemi, la libreria C in ogni caso bufferizza l'output prima di effettivamente chiamare la write sul file, e a sua volta il sistema operativo bufferizza le scritture su disco, per cui, a meno che le dimensioni dei tuoi blocchi non siano piccolissime (e a quel punto potrebbe diventare sensibile l'overhead delle chiamate a funzione) non dovresti avere problemi di performance in scrittura.
In ogni caso, il bottleneck nella tua applicazione suppongo sia sicuramente l'IO su rete, non l'IO su file, per cui non mi preoccuperei troppo di quest'ultimo.