Why they're being "smushed" at the receiving end: Because TCP is a streaming protocol,
and there's no requirement for send/recv calls to have a 1-1 correspondence with
network packets (even if they arrive that way over the wire).
How to "un-smush" them: Either change your TCP protocol to include a message delimiter,
so you can extract messages from the stream without needing to know where the packet
boundaries were; or use UDP instead of TCP.