I have developed a server and an android app that communicate between each other using TCP sockets. The app was working just a few days ago on UNC campus, now that I am back home on VCU campus internet, the app only works on my tablet and not on my phone. When a device connects to the server an output message is displayed and I am not getting any output when my phone attempts to connect, but I am getting successful output when my tablet attempts to connect. I am thinking this issue is not code related, but rather something technical about my devices that I don't quite understand. Any help greatly Appreciated.
public class TeacherUser extends Activity{
Button bCreateQuestion, bOpenQuestion;
ArrayList<String> questions;
private Connect connect = new Connect();
private InThread inThread = new InThread();
private Socket socket = null;
private ObjectOutputStream out = null;
private ObjectInputStream in = null;
private String userName = null;
private boolean connected = false;
private Intent intent;
private Bundle basket;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
setContentView(R.layout.teacher_user);
init();
connectServer();
}
public void onDestroy()
{
super.onDestroy();
try
{
connected=false;
socket.close();
in.close();
out.close();
finish();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public void init(){
bCreateQuestion = (Button) findViewById(R.id.bCreateQuestion);
bOpenQuestion = (Button) findViewById(R.id.bOpenQuestion);
questions = new ArrayList<String>();
intent=getIntent();
basket=intent.getExtras();
}
public void onResume(){
super.onResume();
Log.d("arraylist", "" + questions.size());
}
public void connectServer()
{
String serverIp = "172.23.56.73"; // in the form of "127.0.0.1"
String serverPort = "9999";
if(socket==null)
{
userName = basket.getString("login");
connect.execute(serverIp, serverPort,userName);
inThread.execute();
}
}
private class Connect extends AsyncTask<String,Void,Void>
{
protected Void doInBackground(String ...params )
{
String userName=null,
serverPort=null,
serverIp=null;
if(socket==null)
{
userName=params[2];
serverPort=params[1];
serverIp=params[0];
}
try
{
if(socket==null)
{
InetAddress servAddress = InetAddress.getByName(serverIp);
int port = Integer.parseInt(serverPort);
//1. creating a socket to connect to the server
socket = new Socket(servAddress, port); // sends a connection request to server address/port
}
if(socket!=null)
{
//2. initialize reader/writer
out = new ObjectOutputStream(socket.getOutputStream());
in = new ObjectInputStream(socket.getInputStream());
System.out.println((String)in.readObject());
connected=true;
out.writeObject(userName.trim()+" login");
out.flush();
}
}//try
catch(UnknownHostException errorMsg)
{
System.err.println("You are trying to connect to an unknown host!");
}//catch UHE
catch(IOException errorMsg)
{
errorMsg.printStackTrace();
}//catch IOE
catch(ClassNotFoundException errorMsg)
{
errorMsg.printStackTrace();
}//catch CNFE
return null;
}
}
private class InThread extends AsyncTask<Void,Void,Void>
{
String message;
protected Void doInBackground(Void...params)
{
while(connected)
{
try
{
message = (String)in.readObject();
publishProgress();
}
catch(IOException ioe)
{
ioe.printStackTrace();
}
catch(ClassNotFoundException cnfe)
{
cnfe.printStackTrace();
}
}
return null;
}
protected void onProgressUpdate(Void...params)
{
if(message.substring(0,1).equals("1"))
{
String[] mesArray = message.split(" ",3);
SmsManager sms = SmsManager.getDefault();
sms.sendTextMessage("5402268111", null, mesArray[1]+" asked a question: "+mesArray[2], null, null);
}
}
}
}
03-05 08:49:14.223: W/IInputConnectionWrapper(22443): getExtractedText on inactive InputConnection
03-05 08:49:14.233: W/IInputConnectionWrapper(22443): getTextBeforeCursor on inactive InputConnection
03-05 08:49:14.233: W/IInputConnectionWrapper(22443): getSelectedText on inactive InputConnection
03-05 08:49:14.233: W/IInputConnectionWrapper(22443): getTextAfterCursor on inactive InputConnection
03-05 08:49:14.423: W/IInputConnectionWrapper(22443): getExtractedText on inactive InputConnection
03-05 08:49:14.423: W/IInputConnectionWrapper(22443): getTextBeforeCursor on inactive InputConnection
03-05 08:49:14.423: W/IInputConnectionWrapper(22443): getSelectedText on inactive InputConnection
03-05 08:49:14.423: W/IInputConnectionWrapper(22443): getTextAfterCursor on inactive InputConnection
03-05 08:49:16.886: E/SpannableStringBuilder(22443): SPAN_EXCLUSIVE_EXCLUSIVE spans cannot have a zero length
03-05 08:49:16.886: E/SpannableStringBuilder(22443): SPAN_EXCLUSIVE_EXCLUSIVE spans cannot have a zero length
03-05 08:49:16.906: D/AndroidRuntime(22443): Shutting down VM
03-05 08:49:16.906: W/dalvikvm(22443): threadid=1: thread exiting with uncaught exception (group=0x41811898)
03-05 08:49:16.906: E/AndroidRuntime(22443): FATAL EXCEPTION: main
03-05 08:49:16.906: E/AndroidRuntime(22443): java.lang.RuntimeException: Unable to destroy activity {com.example.lecturebuddy/com.example.lecturebuddy.TeacherUser}: java.lang.NullPointerException
03-05 08:49:16.906: E/AndroidRuntime(22443): at android.app.ActivityThread.performDestroyActivity(ActivityThread.java:3642)
03-05 08:49:16.906: E/AndroidRuntime(22443): at android.app.ActivityThread.handleDestroyActivity(ActivityThread.java:3664)
03-05 08:49:16.906: E/AndroidRuntime(22443): at android.app.ActivityThread.access$1300(ActivityThread.java:165)
03-05 08:49:16.906: E/AndroidRuntime(22443): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1379)
03-05 08:49:16.906: E/AndroidRuntime(22443): at android.os.Handler.dispatchMessage(Handler.java:99)
03-05 08:49:16.906: E/AndroidRuntime(22443): at android.os.Looper.loop(Looper.java:137)
03-05 08:49:16.906: E/AndroidRuntime(22443): at android.app.ActivityThread.main(ActivityThread.java:5455)
03-05 08:49:16.906: E/AndroidRuntime(22443): at java.lang.reflect.Method.invokeNative(Native Method)
03-05 08:49:16.906: E/AndroidRuntime(22443): at java.lang.reflect.Method.invoke(Method.java:525)
03-05 08:49:16.906: E/AndroidRuntime(22443): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1187)
03-05 08:49:16.906: E/AndroidRuntime(22443): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1003)
03-05 08:49:16.906: E/AndroidRuntime(22443): at dalvik.system.NativeStart.main(Native Method)
03-05 08:49:16.906: E/AndroidRuntime(22443): Caused by: java.lang.NullPointerException
03-05 08:49:16.906: E/AndroidRuntime(22443): at com.example.lecturebuddy.TeacherUser.onDestroy(TeacherUser.java:93)
03-05 08:49:16.906: E/AndroidRuntime(22443): at android.app.Activity.performDestroy(Activity.java:5543)
03-05 08:49:16.906: E/AndroidRuntime(22443): at android.app.Instrumentation.callActivityOnDestroy(Instrumentation.java:1134)
03-05 08:49:16.906: E/AndroidRuntime(22443): at android.app.ActivityThread.performDestroyActivity(ActivityThread.java:3629)
03-05 08:49:16.906: E/AndroidRuntime(22443): ... 11 more
03-05 08:49:17.116: W/System.err(22443): java.net.ConnectException: failed to connect to /172.23.56.73 (port 9999): connect failed: EHOSTUNREACH (No route to host)
03-05 08:49:17.116: W/System.err(22443): at libcore.io.IoBridge.connect(IoBridge.java:114)
03-05 08:49:17.116: W/System.err(22443): at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:192)
03-05 08:49:17.116: W/System.err(22443): at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
03-05 08:49:17.116: W/System.err(22443): at java.net.Socket.startupSocket(Socket.java:565)
03-05 08:49:17.116: W/System.err(22443): at java.net.Socket.<init>(Socket.java:225)
03-05 08:49:17.116: W/System.err(22443): at com.example.lecturebuddy.TeacherUser$Connect.doInBackground(TeacherUser.java:188)
03-05 08:49:17.116: W/System.err(22443): at com.example.lecturebuddy.TeacherUser$Connect.doInBackground(TeacherUser.java:1)
03-05 08:49:17.116: W/System.err(22443): at android.os.AsyncTask$2.call(AsyncTask.java:287)
03-05 08:49:17.116: W/System.err(22443): at java.util.concurrent.FutureTask.run(FutureTask.java:234)
03-05 08:49:17.116: W/System.err(22443): at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:230)
03-05 08:49:17.116: W/System.err(22443): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080)
03-05 08:49:17.116: W/System.err(22443): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573)
03-05 08:49:17.116: W/System.err(22443): at java.lang.Thread.run(Thread.java:841)
03-05 08:49:17.116: W/System.err(22443): Caused by: libcore.io.ErrnoException: connect failed: EHOSTUNREACH (No route to host)
03-05 08:49:17.116: W/System.err(22443): at libcore.io.Posix.connect(Native Method)
03-05 08:49:17.126: W/System.err(22443): at libcore.io.BlockGuardOs.connect(BlockGuardOs.java:85)
03-05 08:49:17.126: W/System.err(22443): at libcore.io.IoBridge.connectErrno(IoBridge.java:127)
03-05 08:49:17.126: W/System.err(22443): at libcore.io.IoBridge.connect(IoBridge.java:112)
03-05 08:49:17.126: W/System.err(22443): ... 12 more