why am I doing that way? Because I found out that the maximum buffer size for the receivebuffersize is 8192 bytes. My biggest problem is that I can't receive fully from the server so I need to create many receivebuffersize and append the string. I also need to return the data ONLY after it's finish reading the last data from the server. thanks !