I am using the sockets class with the asynchronous listening methods, everything works perfectly, but I am unable to accurately determine when a connection is dropped or closed. This only causes my BeginSend() function to hang the application for a few seconds before turning the error indicating that the remote host aborted or closed the connection. This causes all other threads in my application to lock up while that function causes the hang (and if multiple threads have hangs the application becomes unstable because of all the locks), even the .Connected property is causing hanging when the socket is closed. How can I set a trigger event or is there any premade server classes out there that someone recommends with Events that hopefully resembles other VB6 winsock controls.