Are you trying for a connect? Are you sure you are talking about FD_CONNECT and not FD_WRITE? Because above you say you are getting NetworkEvents.lNetworkEvents=2. And did you check the return value of the WSAEnumNetworkEvent()? If it is non-zero value you have to get the error number thru a call to WSAGetLastError().