title: Android Client - Server Program
body: <p>Hello Im able to send message from Client to Server but unable to receive the message from the Server to client and display it can you please correct my mistake here? Im not sure if im receiving the data from server or not I tried debugging </p>
  
  <p>Android Client</p>
  
  <pre><code>package com.revolve.bhuvanesh.android_client_server;
  
  import android.graphics.Color;
  import android.net.wifi.WifiManager;
  import android.os.Bundle;
  import android.support.design.widget.FloatingActionButton;
  import android.support.design.widget.Snackbar;
  import android.support.v7.app.AppCompatActivity;
  import android.support.v7.widget.Toolbar;
  import android.text.format.Formatter;
  import android.view.View;
  import android.view.Menu;
  import android.view.MenuItem;
  
  import java.io.BufferedReader;
  import java.io.DataInputStream;
  import java.io.IOException;
  import java.io.InputStream;
  import java.io.InputStreamReader;
  import java.io.ObjectInputStream;
  import java.io.ObjectOutputStream;
  import java.io.PrintWriter;
  import java.net.Socket;
  import java.net.UnknownHostException;
  
  import android.app.Activity;
  import android.os.AsyncTask;
  import android.os.Bundle;
  import android.view.Menu;
  import android.view.View;
  import android.widget.Button;
  import android.widget.EditText;
  import android.widget.Toast;
  
  public class MainActivity extends AppCompatActivity {
  
  
      private Socket client;
      private PrintWriter printwriter,printwriterI;
      private EditText textField;
      private Button button;
      private String messsage;
      private String recMsg;
  
      @Override
      protected void onCreate(Bundle savedInstanceState) {
          super.onCreate(savedInstanceState);
          setContentView(R.layout.activity_main);
  
          //---------------
  
          textField = (EditText) findViewById(R.id.editText1); // reference to the text field
          button = (Button) findViewById(R.id.button1); // reference to the send button
  
          // Button press event listener
          button.setOnClickListener(new View.OnClickListener() {
  
              public void onClick(View v) {
                  messsage = textField.getText().toString(); // get the text message on the text field
                  textField.setText(""); // Reset the text field to blank
                  SendMessage sendMessageTask = new SendMessage();
                  sendMessageTask.execute();
                  textField.setText(recMsg);
                  Toast.makeText(MainActivity.this, recMsg, Toast.LENGTH_SHORT).show();
              }
          });
  
          //----------------
  
  
          Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
          setSupportActionBar(toolbar);
  
          FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
          fab.setOnClickListener(new View.OnClickListener() {
              @Override
              public void onClick(View view) {
                  Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG)
                          .setAction("Action", null).show();
              }
          });
      }
  
      @Override
      public boolean onCreateOptionsMenu(Menu menu) {
          // Inflate the menu; this adds items to the action bar if it is present.
          getMenuInflater().inflate(R.menu.menu_main, menu);
          return true;
      }
  
      @Override
      public boolean onOptionsItemSelected(MenuItem item) {
          // Handle action bar item clicks here. The action bar will
          // automatically handle clicks on the Home/Up button, so long
          // as you specify a parent activity in AndroidManifest.xml.
          int id = item.getItemId();
  
          //noinspection SimplifiableIfStatement
          if (id == R.id.action_settings) {
              return true;
          }
  
          return super.onOptionsItemSelected(item);
      }
      private class SendMessage extends AsyncTask&lt;Void, Void, Void&gt; {
  
          @Override
          protected Void doInBackground(Void... params) {
              ObjectInputStream ois = null;
              try {
  
                  client = new Socket("192.168.1.235", 2288); // connect to the server
                  printwriter = new PrintWriter(client.getOutputStream(), true);
                  printwriter.write(messsage); // write the message to output stream
  
  
  
  
                  printwriter.flush();
                  printwriter.close();
                  InputStream is = client.getInputStream();
                  InputStreamReader isr = new InputStreamReader(is);
                  BufferedReader br = new BufferedReader(isr);
                  String message = br.readLine();
  
                  recMsg=message;
  
  
                  ois.close();
                  client.close(); // closing the connection
              } catch (UnknownHostException e) {
                  e.printStackTrace();
              } catch (IOException e) {
                  e.printStackTrace();
              }
  
              return null;
  
          }
  
      }
  
  
  
  
  }
  </code></pre>
  
  <p>Server Code:</p>
  
  <pre><code>import java.io.BufferedReader;
  import java.io.BufferedWriter;
  import java.io.DataOutputStream;
  import java.io.IOException;
  import java.io.InputStreamReader;
  import java.io.OutputStream;
  import java.io.OutputStreamWriter;
  import java.net.ServerSocket;
  import java.net.Socket;
  import java.sql.*;
  import java.io.IOException;
  import java.io.ObjectInputStream;
  import java.io.ObjectOutputStream;
  import java.net.InetAddress;
  import java.net.Socket;
  import java.net.UnknownHostException;
  
  
  
  public class SimpleTextServer {
  
      static final String JDBC_DRIVER = "mysql-connector-java-5.1.38-bin.jar";  
         static final String DB_URL = "";
         static final String USER = "";
         static final String PASS = "";
  
  
      private static ServerSocket serverSocket;
      private static Socket clientSocket;
      private static InputStreamReader inputStreamReader;
      private static BufferedReader bufferedReader;
      private static String message;
  
      public static void main(String[] args) {
          Connection conn = null;
             Statement stmt = null;
          try {
              serverSocket = new ServerSocket(2288); // Server socket
  
          } catch (IOException e) {
              System.out.println("Could not listen on port: 4444");
          }
  
          System.out.println("Server started. Listening to the port 4444");
  
          while (true)
          {
              try {
  
                  clientSocket = serverSocket.accept(); // accept the client connection
                  inputStreamReader = new InputStreamReader(clientSocket.getInputStream());
                  bufferedReader = new BufferedReader(inputStreamReader); // get the client message
                  message = bufferedReader.readLine();
                  System.out.println(message);
                  ObjectOutputStream oos = new ObjectOutputStream(clientSocket.getOutputStream());
                  OutputStream os = clientSocket.getOutputStream();
                  OutputStreamWriter osw = new OutputStreamWriter(os);
                  BufferedWriter bw = new BufferedWriter(osw);
                  bw.write("Hey Client");
                  System.out.println("Message sent to the client is ");
                  bw.flush();
  
  
              oos.writeObject("Checking...");
              clientSocket.close();
  
              } catch (IOException ex) {
                  System.out.println("Problem in message reading");
              }
  
  
  
          try{
                //STEP 2: Register JDBC driver
                Class.forName("com.mysql.jdbc.Driver");
  
                //STEP 3: Open a connection
                System.out.println("Connecting to a selected database...");
                conn = DriverManager.getConnection(DB_URL, USER, PASS);
                System.out.println("Connected database successfully...");
  
              /*  //STEP 4: Execute a query
                System.out.println("Inserting records into the table...");*/
                stmt = conn.createStatement();
  
                String sql = "update msg set message='"+message+"' where id = 0";
  
                stmt.executeUpdate(sql); 
  
             }catch(SQLException se){
                //Handle errors for JDBC
                se.printStackTrace();
             }catch(Exception e){
                //Handle errors for Class.forName
                e.printStackTrace();
             }finally{
                //finally block used to close resources
                try{
                   if(stmt!=null)
                      conn.close();
                }catch(SQLException se){
                }// do nothing
                try{
                   if(conn!=null)
                      conn.close();
                }catch(SQLException se){
                   se.printStackTrace();
                }//end finally try
             }//end try
             System.out.println("Goodbye!");
          }
      }
  
  }
  </code></pre>