There must be a buffer / stack overflow issue.
I modified the programs.
Now, the computer that's downloading data and saving it on disk, sends "total received data" to the sending computer whenever it receives data.
The sending computer, keeps the record of the total received data on the receiving computer, and won't send data exceeding that number plus 64000.
I'm not sure what size the buffer could be, I'm guessing 64kb, but things happen so fast that it's hard to say.
I can say for this set up / speed etc, when I keep the sending computer from sending more than 64kb that the receiving one hasn't received, I get the file 100%.
If I change my buffer size to 80kb, I only got 99% of my file.
So it really seems that using the PUT command, you can PUT up to 64kb (?) of data and it will make it to the other computer, but over 64kb(?) it just disappears.