android - i am not getting any errors , or exceptions , but the server consoles prints only null all the time whenever i execute the following piece of code -


this clientcode

package com.example.simple_client1;  import android.os.bundle; import android.app.activity; import android.view.menu; import android.view.view; import android.widget.button; import android.widget.edittext;  import java.io.ioexception; import java.io.printwriter; import java.net.socket; import java.net.unknownhostexception;   public class mainactivity extends activity {       private socket client;      private printwriter printwriter;      private edittext textfield;      private button button;      private string messsage;      @override     protected void oncreate(bundle savedinstancestate) {         super.oncreate(savedinstancestate);         setcontentview(r.layout.main);          textfield = (edittext) findviewbyid(r.id.edittext1); //reference text field           button = (button) findviewbyid(r.id.button1);   //reference send button            //button press event listener           button.setonclicklistener(new view.onclicklistener() {                 public void onclick(view v) {                  messsage = textfield.gettext().tostring(); //get text message on text field                 textfield.settext("");      //reset text field blank                  try {                   client = new socket("10.0.2.2", 4444);  //connect server                  printwriter = new printwriter(client.getoutputstream(),true);                  printwriter.write(messsage);  //write message output stream                   printwriter.flush();                  printwriter.close();                  client.close();   //closing connection                  } catch (unknownhostexception e) {                  e.printstacktrace();                 } catch (ioexception e) {                  e.printstacktrace();                 }                }               });     }      @override     public boolean oncreateoptionsmenu(menu menu) {         // inflate menu; adds items action bar if present.         getmenuinflater().inflate(r.menu.main, menu);         return true;     }  } 

my servercode

package a_server;

import java.io.bufferedreader; import java.io.ioexception; import java.io.inputstreamreader; import java.net.serversocket; import java.net.socket;   public class simple_server {      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) {          try {             serversocket = new serversocket(4444);  //server socket         } catch (ioexception e) {             system.out.println("could not listen on port: 4444");         }           while (true) {             try {                  system.out.println("server started. listening port 4444");                 clientsocket = serversocket.accept();//accept client connection                 inputstreamreader = new inputstreamreader(clientsocket.getinputstream());                 bufferedreader = new bufferedreader(inputstreamreader); //get client message                 message = bufferedreader.readline();                  system.out.print(message);                 inputstreamreader.close();                 clientsocket.close();              } catch (ioexception ex) {                 system.out.println("problem in message reading");             }         }     } } 

what went wrong ?

  1. why showing null time @ server part ?

  2. and @ server console side , contains previous null values if re-run program !! how flush ?

thanks in advance

  1. you reading lines aren't writing lines. use println() instead of write().

  2. you're not checking result of readline() null before use it. must first, , if true, close socket, , don't process null though input. isn't.

  3. when exception, print its message. don't substitute 1 of own. otherwise debugging becomes guessing game.


Comments