не понимаю в чемможет быть дело... WSASocket( domain, type, protocol, NULL, 0, 0 ); sflags = 1 ioctlsocket( sock_ptr->socket_id, FIONBIO, &sflags ); connect( sock_ptr->socket_id, (struct sockaddr*)&server_addr, sizeof(struct sockaddr_in) ); server_addr = 127.0.0.0:33333 FD_ZERO( &socket_wrset ); FD_ZERO( &socket_erset ); FD_SET( sock_ptr->socket_id, &socket_wrset ); FD_SET( sock_ptr->socket_id, &socket_erset ); server_timeout.tv_sec = (long)(timeout_ms / 1000); server_timeout.tv_usec = (long)((timeout_ms - server_timeout.tv_sec * 1000) * 1000); err = select( (int)(sock_ptr->socket_id+1), NULL, &socket_wrset, &socket_erset, &server_timeout ); socket_erset -> WSAECONNREFUSED (10061) и так на ЛЮБОЙ адрес и ЛЮБОЙ порт! =( Windows firewall и Trend Micro OfficeScan Client - ОТКЛЮЧЕНЫ.
но больше всего меня волнует ПОЧЕМУ select возвращает WSAECONNREFUSED _немедленно_ несмотря на указанный таймаут (неважно какой - задавал разные значения!) система WinXP SP2 64, Windows Server 2003 32 - везде поведение одинаково.
ладно, будет считать это нормальным поведением на loopback интерфейсах. кстати, оказывается линуксы ведут себя точно так же =)