
Estou testando um pequeno script no Windows 8, que tenta buscar uma página web simples na porta 80. Porém a conexão de rede falha sempre com erro10053.
Pensei inicialmente em um problema de firewall (estou executando o McAffee), mas não tenho mais tanta certeza (nada nos logs; ainda falha quando desativo o firewall).
Então, o que posso fazer para delimitar o problema? Por exemplo, como ter certeza se a solicitação saiu da placa de rede?
Executei o Wireshark e ele realmente me mostrou uma pequena atividade:
(eu) SYN
(ip remoto) SYN, ACK
(eu) ACK
(eu) RST, ACK
Então, isso significa que a solicitação foi realmente enviada?
desde já, obrigado
Responder1
Erro Winsock10053 = "WSAECONNABORTED":
SOCKET_ERROR: Uma conexão estabelecida foi anulada pelo software em sua máquina host.
O "software" mencionado é (provavelmente)Winsockem si.
Encontradoesta página, que tem uma excelente sinopse que parece cobrir exatamente o que você está enfrentando, pois provavelmente o seu script não está formando um cabeçalho HTTP adequado.
Um HTTP POST deve ser enviado para um servidor HTTP.
O servidor começa a ler o POST e percebe que o cabeçalho da solicitação HTTP é inválido.
Ele envia imediatamente uma resposta HTTP (com um status de erro, talvez status=400) e fecha a conexão sem tentar continuar lendo o restante da solicitação HTTP que está por vir.
Enquanto isso, o cliente ainda está gravando o restante da solicitação HTTP no soquete. (Lembre-se de que uma conexão de soquete TCP/IP precisa ser fechada em ambos os lados. Nesse caso, o servidor fechou seu lado, mas o cliente ainda está bombeando dados para a conexão semiaberta.)
O cliente termina de gravar o HTTP POST no o soquete – o que significa que os dados foram armazenados em buffer no Winsock. O aplicativo cliente tenta ler a resposta HTTP, mas não consegue porque a retransmissão de saída (dos dados armazenados em buffer pelo WinSock) falhou e a conexão do soquete foi encerrada no lado do cliente (pelo Winsock). Mesmo que o servidor HTTP tenha enviado a resposta, ela será perdida e não poderá ser recuperada. O erro que seu aplicativo receberá ao tentar ler a resposta HTTP no soquete é WSAECONNABORTED.