Hi, I am writing a client/server program using C# winsock classes. The multi-threaded server (1 thread per client connection) sends small chunks of data to clients. For performance reason I try to use BeginSend instead of Send. It seems to be working fine. The only problem I am encountering is that every a few hours the BeginSend stops sending data and the client has to reconnect to receive more data. So I tried to add the EndSend callback on the server and problem still remains. On the client side I am only using Receive instead of BeginReceive and I am not using semaphores in the server code. Does anyone has an idea why this is so? Thanks a lot!