package se.nekotronic.onepinger; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.io.PrintWriter; import java.net.Socket; import java.io.BufferedWriter; import java.net.UnknownHostException; import android.os.AsyncTask; import android.util.Log; public class OnePingTask extends AsyncTask { @Override protected Void doInBackground(Object... params) { MainActivity parent = (MainActivity) params[0]; String host = (String) params[1]; int port = (Integer) params[2]; try { parent.print("Connecting to " + host + "..."); Socket socket = new Socket(host, port); parent.print("Connected."); BufferedReader from_server = new BufferedReader(new InputStreamReader(socket.getInputStream())); PrintWriter to_server = new PrintWriter(new BufferedWriter(new OutputStreamWriter(socket.getOutputStream())), true); // true: PrintWriter is line buffered parent.print("Sending PING to server..."); to_server.println("PING"); Log.d("*** OnePinger", "Waiting for a line from the server..."); String line_from_server = from_server.readLine(); if (line_from_server == null) { parent.print("Nothing to read from server."); } else { parent.print("Got line from server: '" + line_from_server + "'"); } to_server.close(); from_server.close(); socket.close(); } catch (UnknownHostException e) { parent.warning("Unknown host: " + e.getMessage()); } catch (IOException e) { parent.warning("I/O Exception: " + e.getMessage()); } return null; } } // OnePingTask