package

com.kddi.android.internal.telephony.cdma

Classes

Exceptions

KddiPacketSMSManager.AddressAlreadyInUseException Solution 1 Start ** protected boolean kddiConnectSocket() { if(KDDI_OUTPUT_VERBOSE_LOG) { Log.v(KDDI_TAG, "kddiConnectSocket Start"); } try { mLocalPort++; if (mLocalPort < 5000 || mLocalPort > 6999) { mLocalPort = 5000; } Log.d(KDDI_TAG, "local port: " + mLocalPort); mSocket = new Socket(mKddiChatGateWayIP, KDDI_CHGW_PORT, null, mLocalPort); mErrorCount = 0; // reset error count mIn = mSocket.getInputStream(); mOut = mSocket.getOutputStream(); // Create result receive thread mRetReceiver = new KddiResultReceiver(); mRetRevThread = new Thread(mRetReceiver, "KddiResultReceiver"); } // +[hTC]Kelvin, change source port if the port is using catch (java.net.BindException ex) { //ex.printStackTrace(); String es = ex.getMessage(); if (KDDI_OUTPUT_DEBUG_LOG) { Log.d(KDDI_TAG, "bindexception: " + es); } if (es.startsWith("Address already in use")) { if (KDDI_OUTPUT_DEBUG_LOG) { Log.d(KDDI_TAG, "change source port"); } mErrorCount++; if (mErrorCount > 50) { Log.d(KDDI_TAG, "error count limit!" + mErrorCount); mErrorCount = 0; return false; } else { return kddiConnectSocket(); } } else { ex.printStackTrace(); return false; } } // -[hTC]Kelvin, change source port if the port is using catch(UnknownHostException e) { e.printStackTrace(); if(KDDI_OUTPUT_DEBUG_LOG) { Log.d( KDDI_TAG, e.toString()); } return false; } catch(IOException e) { e.printStackTrace(); if(KDDI_OUTPUT_DEBUG_LOG) { Log.d( KDDI_TAG, e.toString()); } return false; } if(KDDI_OUTPUT_VERBOSE_LOG) { Log.v(KDDI_TAG, "kddiConnectSocket End"); } return true; } /** Solution1 End