Я новичок в программировании для 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();
}
}