rockernerd
rockernerd

Reputation: 31

null pointer exception cannot be fixed

i m getting a nullpointer exception continuously but i can't figure out where the problem is. Please help. it is a java code for client on android. i m trying to send and receive data simultaneously but it is not working. <

package com.chat.clientone;
import android.app.Activity;
import android.os.Bundle;
import java.io.*;
 import java.net.*;

import android.view.View;
import android.view.View.OnClickListener;
import android.view.View.OnKeyListener;
import android.view.KeyEvent;
import android.widget.*;

 import java.io.BufferedReader;
 import java.io.BufferedWriter;
 import java.io.IOException;
  import java.io.InputStreamReader;
 import java.io.OutputStreamWriter;
 import java.io.PrintWriter;
  import java.net.Socket;
 import java.net.UnknownHostException;


 import android.text.Html;
 import android.widget.Button;
 import android.widget.TextView;
 import android.widget.EditText;
 import android.util.*;

 public class ClientoneActivity extends Activity {

public static final String SERVER_HOSTNAME = "10.0.2.2";
public static final int SERVER_PORT = 3000;
private TextView tv=null;
private EditText et=null;
private Button bt=null;
private Socket socket;
BufferedReader in=null;
PrintWriter out=null;
String messageOut=null, messageIn=null;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);                 
    tv=(TextView)findViewById(R.id.clienttext);
    et=(EditText)findViewById(R.id.clientedit);
    bt=(Button)findViewById(R.id.cbtn);


   try {          
           socket = new Socket(SERVER_HOSTNAME, SERVER_PORT);

           tv.append("Connected to server " +
                   SERVER_HOSTNAME + ":" + SERVER_PORT);
           et.append("Enter Username");

        }catch (UnknownHostException e1) {
         e1.printStackTrace();
        } catch (IOException e1) {
         e1.printStackTrace();
        }


            try {
                 in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
                 tv.append("NOTE: Enter 'quit' to end the program.\n");
                 while (true) {
                    //System.out.print("SEND:      ");
                    messageOut = et.getText().toString()+System.getProperty("line.separator");
                   Log.e("LOG_TAG", "ERRRRRRRROOORRR"+messageOut);
                    if (messageOut.equalsIgnoreCase("quit"))  {
                          // User wants to quit.  Inform the other side
                          // of the connection, then close the connection.
                       out.println("CLOSE");
                       out.flush();
                    //   connection.close();
                       tv.append("Connection closed.");
                   //    finish();
                       System.exit(0);
                       break;
                    }
                    out.println(messageOut);
                    out.flush();
                    if (out.checkError()) {
                       throw new IOException("Error occurred while transmitting message.");
                    }
                    tv.append("WAITING...");
                    messageIn = in.readLine();
                    if (messageIn.length() > 0) {
                            // The first character of the message is a command. If 
                            // the command is CLOSE, then the connection is closed.  
                            // Otherwise, remove the command character from the 
                            // message and procede.
                       if (messageIn.equalsIgnoreCase("CLOSE")) {
                          tv.append("Connection closed at other end.");
                         // connection.close();
                     //     finish();
                          System.exit(0);
                          break;
                       }

                    }
                    tv.append("RECEIVED:  " + messageIn);
                 }
              }
              catch (Exception e) {
                 tv.append("Sorry, an error has occurred.  Connection lost.");
                 tv.append(e.toString());
                 System.out.println(e);
                 Log.e("LOG_TAG", "ERRRRRRRROOORRR"+e.toString());
                 System.exit(1);
              }


}

}

Upvotes: 0

Views: 635

Answers (2)

Ved
Ved

Reputation: 8757

Initialize out with BufferWriter.

out = new PrintWriter(new BufferedWriter(new OutputStreamWriter(socket.getOutputStream())), true);

Upvotes: 0

ngesh
ngesh

Reputation: 13501

where have you initialised out variable... its null so you are getting nullpointerException at out.println("CLOSE");

Upvotes: 3

Related Questions