Wenn ich ein Socket SoTimeout einstelle und von ihm lese. Wenn die Lesezeit das Zeitlimit überschreitet, erhalte ich eine "SocketTimeoutException: Read time out". und hier ist der Stapel in meinem Fall:Was ist der Unterschied zwischen "java.io.IOException: Zeitüberschreitung der Verbindung" und "SocketTimeoutException: Zeitüberschreitung beim Lesen"
java.net.SocketTimeoutException: Read timed out
at java.net.SocketInputStream.socketRead0(Native Method)
at java.net.SocketInputStream.read(SocketInputStream.java:150)
at java.net.SocketInputStream.read(SocketInputStream.java:121)
at java.io.FilterInputStream.read(FilterInputStream.java:133)
at org.apache.hadoop.ipc.Client$Connection$PingInputStream.read(Client.java:277)
at java.io.BufferedInputStream.fill(BufferedInputStream.java:235)
at java.io.BufferedInputStream.read(BufferedInputStream.java:254)
at java.io.DataInputStream.readInt(DataInputStream.java:387)
at org.apache.hadoop.ipc.Client$Connection.receiveResponse(Client.java:527)
at org.apache.hadoop.ipc.Client$Connection.run(Client.java:462)
aber hier traf ich "IOExcetion: Connection timed out", ich weiß nicht, wie es passiert ist. Stacks:
java.io.IOException: Connection timed out
at sun.nio.ch.FileDispatcher.read0(Native Method)
at sun.nio.ch.SocketDispatcher.read(SocketDispatcher.java:21)
at sun.nio.ch.IOUtil.readIntoNativeBuffer(IOUtil.java:198)
at sun.nio.ch.IOUtil.read(IOUtil.java:171)
at sun.nio.ch.SocketChannelImpl.read(SocketChannelImpl.java:245)
at org.apache.hadoop.net.SocketInputStream$Reader.performIO(SocketInputStream.java:55)
at org.apache.hadoop.net.SocketIOWithTimeout.doIO(SocketIOWithTimeout.java:142)
at org.apache.hadoop.net.SocketInputStream.read(SocketInputStream.java:155)
at org.apache.hadoop.net.SocketInputStream.read(SocketInputStream.java:128)
at java.io.FilterInputStream.read(FilterInputStream.java:116)
at org.apache.hadoop.ipc.Client$Connection$PingInputStream.read(Client.java:277)
at java.io.BufferedInputStream.fill(BufferedInputStream.java:218)
at java.io.BufferedInputStream.read(BufferedInputStream.java:237)
at java.io.DataInputStream.readInt(DataInputStream.java:370)
at org.apache.hadoop.ipc.Client$Connection.receiveResponse(Client.java:527)
at org.apache.hadoop.ipc.Client$Connection.run(Client.java:462)
Kann mir jemand sagen, was die Unterschiede zwischen den beiden Ausnahmen ist, Dank.
thx fge. Aber ich denke, der Stack ist ** Lesen ** nicht ** Verbinden ** in der Connection Timeout-Fall – Ekans
Was "Stack"? Nein, ein Verbindungstimeout tritt auf, wenn Sie versuchen, eine Verbindung herzustellen, aber fehlschlägt. Weißt du wie TCP funktioniert? – fge
ich meine Stack-Traces, fge :) die beiden Stacks zeigen Exception geworfen beim Lesen von etw nicht verbinden – Ekans