Winsock возвращает 10061 при подключении только к локальному хосту

Я не понимаю, что происходит. Если я создаю сокет в другом месте, отличном от localhost (либо «localhost», «127.0.0.1», либо внешнего ip компьютера), он работает нормально. Если я создаю сокет для адреса без прослушивания этого порта, я получу 10060 (тайм-аут), но не 10061, что имеет смысл. Почему я получаю соединение отказано при переходе на localhost. Я попытался отключить брандмауэр на случай, если он что-то испортит, но это не так

Я делаю все вещи инициализации WSA до этого.

<code>    _socketToServer = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
    if(_socketToServer == -1){
    return false;
    }

   p_int = (int*)malloc(sizeof(int));
   *p_int = 1;
   if( (setsockopt(_socketToServer, SOL_SOCKET, SO_REUSEADDR, 
       (char*)p_int, sizeof(int)) == -1 )||
       (setsockopt(_socketToServer, SOL_SOCKET, SO_KEEPALIVE, (char*)p_int,
               sizeof(int)) == -1 ) ){
        free(p_int);
        return false;
   }
   free(p_int);


   struct sockaddr_in my_addr;

   my_addr.sin_family = AF_INET ;
   my_addr.sin_port = htons(_serverPort);

   memset(&(my_addr.sin_zero), 0, 8);
   my_addr.sin_addr.s_addr = inet_addr(_serverIP);


   if( connect( _socketToServer, (struct sockaddr*)&my_addr, sizeof(my_addr)) 
        == SOCKET_ERROR ){
    DWORD error = GetLastError(); //here is where I get the 10061
    return false;
}
</code>

Есть идеи?

Ответы на вопрос(1)

Ваш ответ на вопрос