Не срабатывает событие FD_CONNECT
От: stream15  
Дата: 13.12.05 04:51
Оценка:
Здравствуйте!

В приведенном ниже коде событие hConnectedEvt никогда
не устанавливается и WSAWaitForMultipleEvents(...) всегда
завершается по тайм — ауту, хотя само соединение
устанавливается.
Известно, что при соединении так — же срабатывает FD_WRITE.
Если использовать его вместо FD_CONNECT, то все работает
нормально. Не могу понять, почему не работает FD_CONNECT.
Если кто — то сталкивался с такой проблемой и знает в чем дело,
просьба подсказать.

Заранее благодарен,
Юрий


WSAEVENT hConnectedEvt = WSA_INVALID_EVENT;
hConnectedEvt = WSACreateEvent();
int nRes = WSAEventSelect (sock_, hConnectedEvt, FD_CONNECT);
_ASSERTE(!nRes);

...................................

WSASetLastError(0);
nRes = connect(sock_, (struct sockaddr *)&peer, sizeof(peer));
if (SOCKET_ERROR == nRes)
{
cout << "Connect result: " << WSAGetLastError() << CR;
}

if (!nRes) cout << "Connection established" << CR;

WSASetLastError(0);
DWORD dwRes = WSAWaitForMultipleEvents(1, &hConnectedEvt, FALSE, 3000, FALSE);
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.