Where is your connect socket initialized? I see that you called Create on your listen socket, but was it called on the connect socket? The first 2 ASSERTs are triggered as a result of an invalid socket in CAsyncSocket::Accept

A side note, your notation could get a bit confusing. You use m_sConnect socket to represent what appears to be a global socket. It is generally accepted that globals are prepended with g_ and members are prepended with m_. Also, the 's' in a variable declared as 'm_sVariable' is generally used to indicate a member variable of type 'short'.