m_listen.BeginAccept(m_asyncAcceptCallback, this); where m_asyncaccpetcallback = private void AcceptCallback(IAsyncResult ar) { try { Socket sock = m_listen.EndAccept(ar); some stuff from --trace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ENTER: System.Threading.ThreadPool:QueueUserWorkItem (System.Threading.WaitCallback,object)([System.Threading.WaitCallback:0x15e9ef28], [System.Timers.Timer:0x15e4d660], ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ENTER: (wrapper delegate-begin-invoke) System.MulticastDelegate:begin_invoke_IAsyncResult_object_AsyncCallback_object (object,System.AsyncCallback,object)(this:0x15e9ef28[System.Threading.WaitCallback DOLServer.exe], [System.Timers.Timer:0x15e4d660], (nil), (nil), ) seems like the connection is established, but it doesnt finish accept or something. code runs on windows using .net