> send me only few peaces of the data
The Send method can return without sending all of the bytes you provided to it. You need to examine the return value and loop if it is less than the total number of bytes you wanted to send.
There is a similar issue with Receive. Receive reads the bytes from the TCP/IP stream as them come in, which might not correlate exactly to invocations of Send on the other side.
See
http://nitoprograms.blogspot.com/2009/04/tcpip-net-sockets-faq.html, especially the part on "framing", for a good tutorial.