Winsock retorna 10061 em conectar-se somente ao localhost
Eu não entendo o que está acontecendo. Se eu criar um socket para qualquer outro lugar que não seja localhost (seja "localhost", "127.0.0.1" ou o ip externo da máquina) ele funciona bem. Se eu criar um soquete para um endereço sem algo escutando naquela porta, eu obteria um 10060 (tempo limite), mas não um 10061, o que faz sentido. Por que é que estou recebendo conexão recusada quando estou indo para localhost. Eu tentei desativar o firewall apenas no caso de estar bagunçando as coisas, mas não é isso
Eu estou fazendo todas as coisas WSA inicializar antes disso.
<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>
Alguma ideia?