title: Java android send a message using socket
body: <p>Hi I want to send a message using a socket I have this : </p>
  
  <pre><code>   import java.io.ByteArrayOutputStream;
  import java.io.DataOutputStream;
  import java.io.IOException;
  import java.io.InputStream;
  import java.io.OutputStream;
  import java.net.Socket;
  import java.net.UnknownHostException;
  
  import android.os.AsyncTask;
  import android.os.Bundle;
  import android.app.Activity;
  import android.view.View;
  import android.view.View.OnClickListener;
  import android.widget.Button;
  import android.widget.EditText;
  import android.widget.TextView;
  
  public class MainActivity extends Activity {
  
      TextView textResponse;
      EditText editTextAddress, editTextPort;
      Button buttonConnect, buttonClear;
  
      @Override
      protected void onCreate(Bundle savedInstanceState) {
          super.onCreate(savedInstanceState);
          setContentView(R.layout.activity_main);
  
          editTextAddress = (EditText)findViewById(R.id.address);
          editTextPort = (EditText)findViewById(R.id.port);
          buttonConnect = (Button)findViewById(R.id.connect);
          buttonClear = (Button)findViewById(R.id.clear);
          textResponse = (TextView)findViewById(R.id.response);
  
          buttonConnect.setOnClickListener(buttonConnectOnClickListener);
  
          buttonClear.setOnClickListener(new OnClickListener(){
  
              @Override
              public void onClick(View v) {
                  textResponse.setText("");
              }});
      }
  
      OnClickListener buttonConnectOnClickListener =
              new OnClickListener(){
  
                  @Override
                  public void onClick(View arg0) {
                      MyClientTask myClientTask = new MyClientTask(
                              editTextAddress.getText().toString(),
                              Integer.parseInt(editTextPort.getText().toString()));
                      myClientTask.execute();
                  }};
  
      public class MyClientTask extends AsyncTask&lt;Void, Void, Void&gt; {
  
          String dstAddress;
          int dstPort;
          String response = "";
  
          MyClientTask(String addr, int port){
              dstAddress = addr;
              dstPort = port;
          }
  
          @Override
          protected Void doInBackground(Void... arg0) {
  
              Socket socket = null;
  
              try {
                  socket = new Socket(dstAddress, dstPort);
  
                  ByteArrayOutputStream byteArrayOutputStream =
                          new ByteArrayOutputStream(1024);
                  byte[] buffer = new byte[1024];
  
                  DataOutputStream outputStream = new DataOutputStream(socket.getOutputStream());
                  outputStream.writeUTF("Hello World!");
  
                  // Read data
  //                DataInputStream inputStream = new DataInputStream(socket.getInputStream());
  //                message = inputStream.readUTF();
  
                  // Shut down socket
  
  
                  int bytesRead;
                  InputStream inputStream = socket.getInputStream();
  
                  while ((bytesRead = inputStream.read(buffer)) != -1){
                      byteArrayOutputStream.write(buffer, 0, bytesRead);
                      response += byteArrayOutputStream.toString("UTF-8");
                  }
                  OutputStream out = socket.getOutputStream();
  
                  out.write("some data".getBytes());
                  out.flush();
                  socket.shutdownInput();
                  socket.shutdownOutput();
                  socket.close();
  
              } catch (UnknownHostException e) {
                  // TODO Auto-generated catch block
                  e.printStackTrace();
                  response = "UnknownHostException: " + e.toString();
              } catch (IOException e) {
                  // TODO Auto-generated catch block
                  e.printStackTrace();
                  response = "IOException: " + e.toString();
              }finally{
                  if(socket != null){
                      try {
                          socket.close();
                      } catch (IOException e) {
                          // TODO Auto-generated catch block
                          e.printStackTrace();
                      }
                  }
              }
              return null;
          }
  
          @Override
          protected void onPostExecute(Void result) {
              textResponse.setText(response);
              super.onPostExecute(result);
          }
  
      }
  
  }
  </code></pre>
  
  <p>When I click a button only connected to the server. It don't send a message. What I have to do for send something ? maybe a message "Hello world" ?</p>