AsyncTask retorno de dados

Olá, estou fazendo uma Aplicação Android juntamente com Arduino, e como sou iniciante nas duas areas possuo um codigo um tanto quanto cru ainda, mas a minha real duvida é : no meu codigo utilizei o AsyncTask para enviar dados do android para o arduino , mas gostaria de receber dados do arduino para o android, ou seja gostaria de ter um FeedBack dos meus comandos.
Ambos estao comunicando perfeitamente, porem nescessito dessa resposta do arduino.
aki estao os codigos do meu app e do arduino.

Arduino:

include <SPI.h>
include <Ethernet.h>

// A linha abaixo permite que voce defina o endereço
// fisico (MAC ADDRESS) da placa de rede
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };

// Os valores abaixo definem o endereço IP, gateway e máscara.
// Configure de acordo com a sua rede.
IPAddress ip(192,168,3,100); //Define o endereço IP
IPAddress gateway(192,168,3,1); //Define o gateway
IPAddress subnet(255, 255, 255, 0); //Define a máscara de rede
int led_port = 5;
EthernetServer server(80);

void setup()
{
Ethernet.begin(mac, ip, gateway, subnet); //Inicializa o Ethernet Shield
Serial.begin(9600);
Serial.println(“Servidor on_line”);
Serial.println(Ethernet.localIP());
pinMode(led_port, OUTPUT);
}

void loop() {

EthernetClient client = server.available();
if (client) {

while (client.connected()) {
if (client.available()) {

char c = client.read();

Serial.print("Command: ");
Serial.println©;

if (c == ‘1’) {
digitalWrite(led_port, HIGH);
Serial.println(“Led status: 1 (ON)”);
client.println(“Led status: 1 (ON)”); //aqui envia do arduino para o android
}

if (c == ‘0’) {
digitalWrite(led_port, LOW);
Serial.println(“Led status: 0 (OFF)”);
client.println(“Led status: 0 (OFF)”); //aqui envia do arduino para o android
}

if (!client.connected()) {
client.stop();
}
}
}
delay(1000);
client.stop();
}
}

Android :

import android.os.AsyncTask;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import java.io.IOException;
import java.io.PrintWriter;
import java.net.Socket;

public class MainActivity extends AppCompatActivity {

private static Socket socket;
private static PrintWriter printWriter;


String message ="";

private static String ip = "192.168.3.100";
int port = 80;



@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

}
public void send_text(View v){

    message = "1";
    myTask mt = new myTask();
    mt.execute();
}
public void send_text2(View v){

    message = "0";
    myTask mt = new myTask();
    mt.execute();

}
class myTask extends AsyncTask<Void,Void,String>{
    
    @Override
    protected String doInBackground(Void[] params)
    {
        try {

            socket = new Socket(ip,port);
            printWriter = new PrintWriter(socket.getOutputStream());
            printWriter.write(message);
            printWriter.flush();
            printWriter.close();
            socket.close();


        }catch (IOException e) {

            e.printStackTrace();
        }

        return null;
    }
    
}

}

Eae bleuza? Seu problema é bem simples de resolver. Se eu entendi bem vc quer que haja um retorno quando o doInBackground for concluido, nesse caso basta criar uma interface e usa-la com callback ex:

      private interface AsyncCallback {
   void doInBackgroundTerminou(); // passe algum parâmetro se quiser; troque void por algum tipo se quiser.
  }

entao na classe myTask declare uma instancia de AsyncCallback e inicialize-a no construtor (que vc tera de criar) então chame doInBackgroundTerminou(); qd for conveniente pra vc. E é claro troque

   myTask mt = new myTask();
     mt.execute();

por:

   myTask mt = new myTask(new AsyncCallback {
          @override
          public void doInBackgroundTerminou(){
            //faça oque for necessario aqui
          } 
         });
         mt.execute();

Obs: escrevi o código aqui no site msm e n testei entao pode haver algum erro na gramatica.