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 ?
why showing null time @ server part ?
and @ server console side , contains previous null values if re-run program !! how flush ?
thanks in advance
you reading lines aren't writing lines. use println() instead of write().
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.
when exception, print its message. don't substitute 1 of own. otherwise debugging becomes guessing game.
Comments
Post a Comment