鉴于此堆栈跟踪代码段
引起:java.net.SocketException:软件导致连接中止:
java.net.SocketOutputStream.socketWrite0(本机方法)中的套接字写入错误
我试着回答以下问题:
关于#1:
Sun的JVM源代码不包含这个确切的消息,但我认为文本软件导致连接中止:套接字写入错误来自本机实现SocketOutputStream:
private native void socketWrite0(FileDescriptor fd, byte[] b, int off,
int len) throws IOException;
Run Code Online (Sandbox Code Playgroud)
关于#2
我的猜测是,它是在客户端终止连接之前,在获得完整响应之前引起的(例如,发送请求,但在获得完整响应之前,它已关闭/终止/脱机)
问题:
我需要证明这个堆栈跟踪是套接字客户端的"错误",并且服务器没有做任何事情来避免它.(除了捕获异常,或使用非Sun JVM SocketOutputStream,但两者都没有真正避免客户端终止的事实)