【发布时间】:2014-12-23 12:54:50
【问题描述】:
我在带有 try-catch IOException 的代码部分中收到 java.net.SocketException,但没有输出错误。 SocketException 是 IOException 的继承者,为什么?
try {
Socket net = new Socket(TARGET, PORT);
sendRawLine("GET / HTTP/1.1", net);
sendRawLine("request", net);
net.close();
} catch (IOException e) {
// System.out.println(e);
}
java.net.SocketException: Connection reset
at java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:118)
at java.net.SocketOutputStream.write(SocketOutputStream.java:159)
at sun.nio.cs.StreamEncoder.writeBytes(StreamEncoder.java:221)
at sun.nio.cs.StreamEncoder.implFlushBuffer(StreamEncoder.java:291)
at sun.nio.cs.StreamEncoder.implFlush(StreamEncoder.java:295)
at sun.nio.cs.StreamEncoder.flush(StreamEncoder.java:141)
at java.io.OutputStreamWriter.flush(OutputStreamWriter.java:229)
at java.io.BufferedWriter.flush(BufferedWriter.java:254)
at com.Joorvish.sendRawLine(Joorvish.java:125)
at com.Joorvish.createSockets(Joorvish.java:99)
at com.Lorento.run(Lorento.java:15)
at java.lang.Thread.run(Thread.java:744)
java.net.SocketException: Broken pipe
at java.net.SocketOutputStream.socketWrite0(Native Method)
at java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:113)
at java.net.SocketOutputStream.write(SocketOutputStream.java:159)
at sun.nio.cs.StreamEncoder.writeBytes(StreamEncoder.java:221)
at sun.nio.cs.StreamEncoder.implFlushBuffer(StreamEncoder.java:291)
at sun.nio.cs.StreamEncoder.implFlush(StreamEncoder.java:295)
at sun.nio.cs.StreamEncoder.flush(StreamEncoder.java:141)
at java.io.OutputStreamWriter.flush(OutputStreamWriter.java:229)
at java.io.BufferedWriter.flush(BufferedWriter.java:254)
at com.Joorvish.sendRawLine(Joorvish.java:125)
at com.Joorvish.createSockets(Joorvish.java:100)
at com.Lorento.run(Lorento.java:15)
at java.lang.Thread.run(Thread.java:744)
【问题讨论】:
-
非常简单。如果您需要进一步的帮助粘贴您的代码并告诉我们您做了什么以及您期望什么,为什么您需要在这里阅读一个衬垫docs.oracle.com/javase/7/docs/api/java/net/SocketException.html?
-
@chiastic-security 第 15 行只是使用此代码执行一个方法
-
at com.Joorvish.sendRawLine(Joorvish.java:125) at com.Joorvish.createSockets(Joorvish.java:99)这让我怀疑sendRawLine被错误地使用了。你有关于该方法的文档吗? -
您需要发布此代码出现的整个方法及其签名,以及调用它的第 15 行。
-
@Andy 所以你需要发布
sendRawLine()的代码进行评估。这肯定很明显吗?以及对代码的要求?和堆栈跟踪?您究竟希望人们如何在这里帮助您?魔法?
标签: java try-catch ioexception socketexception