0

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
Android
  • 1,230
  • 12
  • 20

0 Answers0