diff --git a/cim-client-sdk/cim-android-sdk/src/com/farsunset/cim/sdk/android/CIMConnectorManager.java b/cim-client-sdk/cim-android-sdk/src/com/farsunset/cim/sdk/android/CIMConnectorManager.java index 2b06158..d2711bf 100644 --- a/cim-client-sdk/cim-android-sdk/src/com/farsunset/cim/sdk/android/CIMConnectorManager.java +++ b/cim-client-sdk/cim-android-sdk/src/com/farsunset/cim/sdk/android/CIMConnectorManager.java @@ -25,7 +25,6 @@ import java.io.IOException; import java.net.ConnectException; import java.net.InetSocketAddress; import java.nio.ByteBuffer; -import java.nio.channels.ClosedSelectorException; import java.nio.channels.SelectionKey; import java.nio.channels.Selector; import java.nio.channels.SocketChannel; @@ -197,12 +196,14 @@ class CIMConnectorManager{ } }catch(ConnectException ignore){ + IOLOCK.unlock(); handleConnectAbortedEvent(); }catch(IllegalArgumentException ignore){ + IOLOCK.unlock(); handleConnectAbortedEvent(); }catch(IOException ignore) { handelDisconnectedEvent(); - }catch(ClosedSelectorException ignore) {} + } } }); } @@ -407,11 +408,10 @@ class CIMConnectorManager{ } } - if(result == -1) { - closeSession(); - return; - } - + if(result == -1 && !readBuffer.hasRemaining()) { + closeSession(); + return; + } markLastReadTime(); @@ -436,6 +436,11 @@ class CIMConnectorManager{ } this.messageReceived(message); + + if(result == -1) { + closeSession(); + return; + } } diff --git a/cim-client-sdk/cim-android-sdk/src/com/farsunset/cim/sdk/android/coder/CIMLogger.java b/cim-client-sdk/cim-android-sdk/src/com/farsunset/cim/sdk/android/coder/CIMLogger.java index 727cb09..0cb18f5 100644 --- a/cim-client-sdk/cim-android-sdk/src/com/farsunset/cim/sdk/android/coder/CIMLogger.java +++ b/cim-client-sdk/cim-android-sdk/src/com/farsunset/cim/sdk/android/coder/CIMLogger.java @@ -118,7 +118,7 @@ public class CIMLogger { try { if (session.socket().getLocalAddress() != null) { - builder.append(" L:").append(session.socket().getLocalAddress().toString()); + builder.append(" L:").append(session.socket().getLocalAddress()+":"+session.socket().getLocalPort()); } } catch (Exception ignore) { } diff --git a/cim-use-examples/cim-client-android/app/libs/cim-android-sdk-3.7.0.jar b/cim-use-examples/cim-client-android/app/libs/cim-android-sdk-3.7.0.jar index 0cc43e1..6020175 100644 Binary files a/cim-use-examples/cim-client-android/app/libs/cim-android-sdk-3.7.0.jar and b/cim-use-examples/cim-client-android/app/libs/cim-android-sdk-3.7.0.jar differ