#include <iostream>
#include <string>
#include <afxsock.h>
class CMyAsyncSocket : public CAsyncSocket
{
public:
bool connected;
CMyAsyncSocket()
{
connected = false;
}
void OnConnect( int nErrorCode )
{
connected = true;
}
};
int main()
{
AfxSocketInit();
CMyAsyncSocket sock;
BOOL r = sock.Create( 0, SOCK_STREAM, FD_WRITE | FD_READ | FD_CONNECT , NULL );
if(r) std::cout << "created" << std::endl;
r = sock.Connect( "www.rambler.ru", 80 );
if(!r)
{
if( GetLastError() == WSAEWOULDBLOCK )
{
std::cout << "would block" << std::endl;
}
}
while( !sock.connected ); //ждём соединения
std::cout << "connected" << std::endl;
return 1;
}
Соответственно, выводится:
created
would block
Далее программа ждёт. Почему не происходит соединение? Или он и не должно?