Android Порт сканер с многопоточностью - PullRequest
0 голосов
/ 18 апреля 2020

Я новичок в программировании для Android. Я хочу сделать простой сканер портов на Android. Ниже приведен мой код. Для простоты я пытаюсь запустить только один поток и пытаюсь проверить первые 255 портов и сохранение вывод в строке буфера, который затем отображается с помощью editText. Но ничего не отображается. Пожалуйста, помогите.

package com.sudarshan.mythread;

import android.app.AlertDialog;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.EditText;
import java.net.UnknownHostException;
import java.net.InetSocketAddress;
import java.net.SocketTimeoutException;
import java.io.IOException;
import java.net.*;


    public class MainActivity extends AppCompatActivity implements Runnable {

        EditText t;
        StringBuffer buffer = new StringBuffer();
        int _port=0;
        int port=1;

        @Override

        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            t=(EditText)findViewById(R.id.editText);
          //  t.setText("Hello");

            int n = 1; // Number of threads
            for (int i=0; i<n; i++)
            {

                try {
                    Thread object = new Thread(this);
                    object.start();
                   // _port=_port+255;

                   // object.sleep(500);
                }
                catch(Exception e)
                {

                }
            }
            t.setText(buffer.toString());

           // t.setText(buffer.toString());
        }
        public void run()
        {
            try
            {

                // Displaying the thread that is running

                String ip="127.0.0.1";

                for(int i=0;i<10;i++)
                {
                    Socket socket = new Socket();
                    SocketAddress address = new InetSocketAddress(ip, port +_port);
                    port++;
                    socket.connect(address, 500);
                    buffer.append ("Port  " +
                            String.valueOf((port)) +
                            " is open\n");
                    //OPEN
                    socket.close();


                }

            }
            catch (UnknownHostException e)

            {
                //WRONG ADDRESS
            }
            catch (SocketTimeoutException e) {


                //TIMEOUT
            }
            catch (IOException e)
            {
                //CLOSED
                buffer.append ("Port  " +
                        String.valueOf((port +_port)) +
                        " is closed\n");

            }






        }
        public void showMessage(String title,String Message)
        {
            AlertDialog.Builder builder = new AlertDialog.Builder(this);
            builder.setCancelable(true);
            builder.setTitle(title);
            builder.setMessage(Message);
            builder.show();
        }
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...