java - Client Not Receiving String From Server -


i trying write tcp client using sockets in java, cannot seem read data sent server client. time received server not time..

public class tcpclient {      private string servermessage;     public static final string serverip = "103.13.97.87"; //your computer ip address     public static final int serverport = 8101;     private onmessagereceived mmessagelistener = null;     private boolean mrun = false;      printwriter out;     bufferedreader in;      /**      *  constructor of class. onmessagedreceived listens messages received server      */     public tcpclient(onmessagereceived listener) {         mmessagelistener = listener;     }      /**      * sends message entered client server      * @param message text entered client      */     public void sendmessage(string message){         if (out != null && !out.checkerror()) {             out.println(message);             out.flush();         }     }      public void stopclient(){         mrun = false;     }      public void run() {          mrun = true;          try {             //here must put computer's ip address.             inetaddress serveraddr = inetaddress.getbyname(serverip);              log.e("tcp client", "c: connecting...");              //create socket make connection server             socket socket = new socket(serveraddr, serverport);              try {                  //send message server                 out = new printwriter(new bufferedwriter(new outputstreamwriter(socket.getoutputstream())), true);                  log.e("tcp client", "c: sent.");                  log.e("tcp client", "c: done.");                  //receive message server sends                 in = new bufferedreader(new inputstreamreader(socket.getinputstream()));                  //in while client listens messages sent server                 while (mrun) {                     servermessage = in.readline();                      if (servermessage != null && mmessagelistener != null) {                         //call method messagereceived myactivity class                         mmessagelistener.messagereceived(servermessage);                     }                     servermessage = null;                  }                   log.e("response server", "s: received message: '" + servermessage + "'");               } catch (exception e) {                  log.e("tcp", "s: error", e);              } {                 //the socket must closed. not possible reconnect socket                 // after closed, means new socket instance has created.                 socket.close();             }          } catch (exception e) {              log.e("tcp", "c: error", e);          }      }      //declare interface. method messagereceived(string message) must implemented in myactivity     //class @ on asyncktask doinbackground     public interface onmessagereceived {         public void messagereceived(string message);     } } 

my customadpter.java

public class mycustomadapter extends baseadapter {     private arraylist<string> mlistitems;     private layoutinflater mlayoutinflater;      public mycustomadapter(context context, arraylist<string> arraylist){          mlistitems = arraylist;          //get layout inflater         mlayoutinflater = (layoutinflater) context.getsystemservice(context.layout_inflater_service);     }      @override     public int getcount() {         //getcount() represents how many items in list         return mlistitems.size();     }      @override         //get data of item specific position         //i represents position of item in list     public object getitem(int i) {         return null;     }      @override         //get position id of item list     public long getitemid(int i) {         return 0;     }      @override      public view getview(int position, view view, viewgroup viewgroup) {          //check see if reused view null or not, if not null reuse         if (view == null) {             view = mlayoutinflater.inflate(r.layout.list_item, null);         }          //get string item position "position" array list put on textview         string stringitem = mlistitems.get(position);         if (stringitem != null) {              textview itemname = (textview) view.findviewbyid(r.id.list_item_text_view);              if (itemname != null) {                 //set item name on textview                 itemname.settext(stringitem);             }         }          //this method must return view corresponding data @ specified position.         return view;     } } 

mainactivity.java

public class mainactivity extends activity { private listview mlist; private arraylist<string> arraylist; private mycustomadapter madapter; private tcpclient mtcpclient;  @override public void oncreate(bundle savedinstancestate) {     super.oncreate(savedinstancestate);     setcontentview(r.layout.activity_main);      arraylist = new arraylist<string>();      final edittext edittext = (edittext) findviewbyid(r.id.edittext);     button send = (button)findviewbyid(r.id.send_button);      //relate listview java 1 created in xml     mlist = (listview)findviewbyid(r.id.list);     madapter = new mycustomadapter(this, arraylist);     mlist.setadapter(madapter);      // connect server     new connecttask().execute("");      send.setonclicklistener(new view.onclicklistener() {         @override         public void onclick(view view) {              //string message = edittext.gettext().tostring();             string message = "mall: abc mall date: 08/08/2013 time: 13:45 md5 f6151b2cdc256be4971bcc30629bbc7\r\n";            /* string str =md5digest(message);             string s=message+str;*/              //add text in arraylist             arraylist.add("c: " + message);              //sends message server             if (mtcpclient != null) {                   mtcpclient.sendmessage(message);                  /*mtcpclient.sendmessage(s);*/             }              //refresh list             madapter.notifydatasetchanged();             edittext.settext("");         }     });  }   public class connecttask extends asynctask<string,string,tcpclient> {      @override     protected tcpclient doinbackground(string... message) {          //we create tcpclient object ,         mtcpclient = new tcpclient(new tcpclient.onmessagereceived() {             @override             //here messagereceived method implemented             public void messagereceived(string message) {                 //this method calls onprogressupdate                 publishprogress(message);             }         });         mtcpclient.run();          return null;     }      @override     protected void onprogressupdate(string... values) {         super.onprogressupdate(values);          //in arraylist add messaged received server         arraylist.add(values[0]);         // notify adapter data set has changed. means new message received         // server added list         madapter.notifydatasetchanged();     } } public static final string md5digest(final string text) {      try      {            // create md5 hash            messagedigest digest = java.security.messagedigest.getinstance("md5");            digest.update(text.getbytes());            byte messagedigest[] = digest.digest();             // create hex string            stringbuffer hexstring = new stringbuffer();            int messagedigestlenght = messagedigest.length;            (int = 0; < messagedigestlenght; i++)            {                 string hasheddata = integer.tohexstring(0xff & messagedigest[i]);                 while (hasheddata.length() < 2)                      hasheddata = "0" + hasheddata;                 hexstring.append(hasheddata);            }            return hexstring.tostring();       } catch (nosuchalgorithmexception e)      {            e.printstacktrace();      }      return ""; // if text null return nothing } @override public boolean oncreateoptionsmenu(menu menu) {     // inflate menu; adds items action bar if present.     getmenuinflater().inflate(r.menu.main, menu);     return true; } } 


Comments

Popular posts from this blog

Unable to remove the www from url on https using .htaccess -