First of all, there no such limitation in the .NET Socket implementation : the actual code beinh Receive() is in fact a direct Winsock2 recv() function call, and it passes your buffer directly, not an intermediate buffer. I can see an error in your code : in your loop, you are Accepting a new socket instance at each iteration. :confused: Usually, you accept a socket once, and then loop with Receive.