TCP will split and join them up in unpredictable ways depending on the channel quality and how quick the sends are apart. Check out RFC-793 to understand why.
You have to re-assemble at the receiver, and decide where one packet starts and ends. Most often you will have to insert unique "start-of-packet" and "end-of_packet" markers in the stream to give the receiver a clue.
TCP/IP is a stream over a "connection", guaranteed to be error-free (or not at all) after all the retries have finished, while UDP/IP is just single packets that are dispatched (which can be lost or corrupted) but are adequate for a lot of tasks.
Wireshark and Ethereal are good teaching tools if you are playing around with networking.