给定这个堆栈跟踪片段
引自: java.net. SocketException: 软件导致连接中止: 套接字写入错误 < br > at SocketOutputStream.socketWrite0(原生 方法)
我试图回答以下问题:
关于 # 1:
Sun 的 JVM 源代码没有包含这个确切的消息,但是我认为文本 软件导致连接中止: 套接字写入错误来自于 SocketOutputStream
的本地实现:
private native void socketWrite0(FileDescriptor fd, byte[] b, int off,
int len) throws IOException;
关于 # 2
我的猜测是,当客户端在获得完整响应之前终止了连接(例如,发送了一个请求,但是在获得完整响应之前,它被关闭/终止/离线) ,就会导致这种情况
问题:
我需要证明这个堆栈跟踪是套接字客户机的“错误”,并且服务器无法避免这个错误。(除了捕获异常,或者使用非 Sun JVM SocketOutputStream,尽管两者都不能真正避免客户端终止的事实)