0

Whenever I call SocketServer it force closes app. If I run it in background Service then it skips that Code.

public void run() {
            try {
                //Log.e("Debugging Data: ", "-------------->>>>>     Here  "+LocalServerThread.getState());
                if (LocalServerThread.getState() == Thread.State.RUNNABLE) {
                    try {
                        if(socClient!=null) {
                            ServerAsyncTask serverAsyncTask = new ServerAsyncTask();
                            serverAsyncTask.execute(new Socket[]{socClient});
                        }
                    }
                    catch(Exception ex)
                    {
                        Log.e("Debugging Data: ", "-------------->>>>>     Server ERROR  "+ex.getMessage());
                    }
                }
            }
            catch(Exception ex)
            {
                Log.e("Debugging Data: ", "Not Running");
                Log.e("Debugging Data: ", "New Thread Created");

                LocalServerThread = new Thread() {
                    @Override
                    public void run() {
                        try {
                            //ServerSocket socServer = new ServerSocket(8088);
                            while (true)
                            {
                                socServer=null;
                                socServer = new ServerSocket(5000);
                                Log.e("Debugging Data: ", "-------------->>>>>     1  ");
                                socClient = socServer.accept();
                                Log.e("Debugging Data: ", "-------------->>>>>     2  ");
                                //Log.e("Debugging Data: ", "New Thread Running");
                                if(socClient==null) {
                                    Log.e("Debugging Data: ", "SOC Client nULL");
                                    socClient = socServer.accept();
                                    Log.e("Debugging Data: ", "New SOC Client Created");
                                }
                                ServerAsyncTask serverAsyncTask = new ServerAsyncTask();
                                serverAsyncTask.execute(new Socket[]{socClient});
                            }
                        } catch (IOException e) {
                            Log.e("Debugging Data: ", "New Thread Error  "+e.getMessage());
                            e.printStackTrace();
                        }
                    }
                };

                LocalServerThread.start();
                Log.e("Debugging Data: ", "-------------->>>>>     Here2  "+LocalServerThread.getState());
            }
}
Phantômaxx
  • 37,901
  • 21
  • 84
  • 115
  • `Whenever I call SocketServer` ?? Sorry i do not see `SocketServer` in your posted code. – blackapps Nov 10 '19 at 19:51
  • `public void run() {` That is the run() of a ...? – blackapps Nov 10 '19 at 19:51
  • `ServerAsyncTask serverAsyncTask = new ServerAsyncTask(); serverAsyncTask.execute(new Socket[]{socClient});` You have that twice in your code. What should that code do? – blackapps Nov 10 '19 at 19:53
  • `while (true) { socServer=null; socServer = new ServerSocket(5000); ........}`. Why would you create a new server socket afte a client connected? Wrong loop. – blackapps Nov 10 '19 at 19:56
  • 1. actually i initiate SocketServer in onStartCommand socServer = new ServerSocket(8088); @blackapps 2. i Use run Method Because i am running this Code in new Thread.. – professional sabharwal Nov 10 '19 at 23:42
  • Your code makes no sense to me as long as you do not try to explain what you want and what the code should do. – blackapps Nov 11 '19 at 09:26
  • actually i am creating a **Remote** and **Vibrator** using Socket Programming.whenever i want to call my Assistant i Click Button on my Remote and on the Otherside the **Assistant Device** would Vibrate @blackapps – professional sabharwal Nov 11 '19 at 16:19

0 Answers0