1. ホーム
  2. java

[解決済み] java.net.SocketException: Software caused connection abort: recv failed [duplicate] (ソフトウェアが原因で接続が中断されました。

2022-01-30 19:49:48

質問

以下のエラーの意味が具体的に何なのか、適切な答えが見つかりませんでした。

java.net.SocketException: Software caused connection abort: recv failed

注意事項

  • このエラーは頻繁に発生するものではなく、予測不可能です。ただし、このエラーが発生すると、今後すべてのURIのリクエストに失敗することを意味します。
  • 唯一の解決策は、Tomcatと実機(この場合はWindows)を再起動することです(これも、たまにしかできません)。
  • URI は間違いなく利用可能です(ブラウザに取得を依頼することで確認できます)。

関連するコードです。

BufferedReader reader;
try { 
 URL url = new URL(URI);
 reader = new BufferedReader(new InputStreamReader(url.openStream())));
} catch( MalformedURLException e ) { 
 throw new IOException("Expecting a well-formed URL: " + e); 
}//end try: Have a stream

String buffer;
StringBuilder result = new StringBuilder();
while( null != (buffer = reader.readLine()) ) { 
 result.append(buffer); 
}//end while: Got the contents.
reader.close();

解決方法は?

これは通常、TCPタイムアウトなどのネットワークエラーが発生したことを意味します。まず、スニファ(wireshark)を接続上に置いて、何か問題があるかどうかを確認します。 TCPエラーがあれば、それを確認することができるはずです。 また、ルーターのログを確認することができます。 無線がどこかに関係している場合、それもこの種のエラーの原因です。