TCP ne transporte pas des « paquets », mais un flux. Il n'y a pas de morceaux avec un début et une fin.
Que tu fasses deux
send ou un seul gros ne devrait rien changer, ils sont l'un derrière l'autre et ordonnés. Seulement, tu ne peux pas compter sur le découpage. Suivant la version de TCP, l'émetteur peut attendre de pouvoir remplir une trame avant d'envoyer les données, ou envoyer dès qu'il peut. Dans le second cas, tu reçois les données en deux fois (sauf si tu lis après que tu aies reçu les deux parties, dans ce cas, elles peuvent être recollées).
Si tu veux un système en paquets, il faut te les faire toi-même : soit ils ont toujours la même taille, et donc tu lis par morceaux de cette taille (et tu continues à lire, tu attends la suite, si tu reçois moins pour avoir le paquet entier avant de le traiter). Soit, tu te fais ton protocole à toi. Un simple serait d'envoyer un entier de la taille que tu veux (mais fixée) au début de chaque paquet pour en indiquer sa taille. Et tu lis jusqu'à atteindre cette taille (et seulement cette taille) pour avoir le paquet entier. Pour obtenir le paquet suivant, tu lis la taille (elle est transmise au début du paquet) et tu lis le paquet...
Tu peux bien sûr te faire un protocole plus compliqué

Voilà, j'espère avoir été clair, mais je n'en suis pas sûr
