i am working on a send/recieve file application... im sending the file piece by piece (7000 bytes every time) using Asynchronous Sockets through a loop

my problem is this:
some times , arbitrary , the server will not recieve the whole package the client sends(the 7000 bytes) but it will recieve it in 2 chunks ( ex. first 1500 bytes then 5500 bytes).

is this a winsock problem or a bug in my code?
i can provide any specific code if it helps

thanks