Class Overview
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
Public Constructors
public
KddiPacketSMSManager.AddressAlreadyInUseException
(String detailMessage)