Reading a packet of data in one call

I'm lost, is there any way you could direct me on how to process multiple packets?

I don't understand what you mean. Each packet should contain all the data to do something. You should read until the end of the packet arrives, then do that something.

I don't understand what you mean by "process multiple packets". Each one needs to be processed separately.