Before always use sockets to achieve emulator and PC communication, card for a few days, finally ask other people finally can connect.The cause of the error is the IP and port, IP to use the native IP (in cmd input ipconfig, note: Each boot native IP is different, ADSL is dynamic IP), port with the name of emulator, 5554 or 5556.java sever file to build another Java project run , the Android project is not running Java (Run application)
Client code:Java code
Package com.yarin.android.Examples_08_04; Import Java.io.BufferedReader; Import Java.io.BufferedWriter; Import Java.io.InputStreamReader; Import Java.io.OutputStreamWriter; Import Java.io.PrintWriter; Import java.net.InetAddress; Import Java.net.Socket; Import android.app.Activity; Import Android.os.Bundle; Import Android.util.Log; Import Android.view.View; Import Android.view.View.OnClickListener; Import Android.widget.Button; Import Android.widget.EditText; Import Android.widget.TextView; public class Activity01 extends Activity {private final String Debug_tag = "Activity01"; Private TextView Mtextview=null; Private EditText Medittext=null; Private Button Mbutton=null; @Override public void OnCreate (Bundle savedinstancestate) {super.oncreate (savedinstancestate); Setcontentview (R.layout.main); Mbutton = (Button) Findviewbyid (r.id.bUTTON01); mtextview= (TextView) Findviewbyid (R.ID.TEXTVIEW01); medittext= (EditText) Findviewbyid (r.id.edittext01); Login Mbutton.setonclicklistener (new Onclicklistener () {public void OnClick (View v) {SOCKET socket = NULL; String message = Medittext.gettext (). toString () + "\ r \ n"; try {//create socket SOCKET = new Socket ("116.29.27.138", 555 4); View native IP, each boot is different//socket=new socket ("192.168.1.110", 50000); Sends a message to the server printwriter out = new PrintWriter (new BufferedWriter (New OutputStreamWriter (Socket.geto Utputstream ())), true); OUT.PRINTLN (message); Receive messages from the server BufferedReader br = new BufferedReader (New InputStreamReader (socket.getInputStream ())); String msg = Br.readline (); if (msg! = null) {Mtextview.settext (msg); } else {mtextview.settext ("Data Error!"); }//Close stream out.close (); Br.close (); Close socket Socket.close (); } catch (Exception e) {//Todo:handle Exception LOG.E (Debug_tag, e.tostring ()); } } }); }} package com.yarin.android.Examples_08_04; Import Java.io.BufferedReader; Import Java.io.BufferedWriter; Import Java.io.InputStreamReader; Import Java.io.OutputStreamWriter; Import Java.io.PrintWriter; Import java.net.InetAddress; Import Java.net.Socket; Import android.app.Activity; Import Android.os.Bundle; Import Android.util.Log; Import Android.view.View; Import Android.view.View.OnClickListener; Import Android.widget.Button; Import Android.widget.EditText; Import Android.widget.TextView; public class Activity01 extends Activity {private final String Debug_tag = "Activity01"; private TextView mtextview=null; Private EditText Medittext=null; Private Button Mbutton=null; @Override public void OnCreate (Bundle savedinstancestate) {super.oncreate (savedinstancestate); Setcontentview ( R.layout.main); Mbutton = (Button) Findviewbyid (R.ID.BUTTON01); mtextview= (TextView) Findviewbyid (R.ID.TEXTVIEW01); medittext= (EditText) Findviewbyid (r.id.edittext01); Login Mbutton.setonclicklistener (new Onclicklistener () {public void OnClick (View v) {socket socket = NULL; String message = Medittext.gettext (). toString () + "\ r \ n"; try {//create socket SOCKET = new Socket ("116.29.27.138", 5554),///view native IP, each boot is different//socket=new socket ("192.168.1.110 ", 50000); Send message to server printwriter out = new PrintWriter (New BufferedWriter (Socket.getoutputstream ())), true); OUT.PRINTLN (message); Receive messages from the server BufferedReader br = new BufferedReader (New InputStreamReader (Socket.getinputstream ())); String msg = Br.readline (); if (msg! = null) {Mtextview.settext (msg);} else {mtextview.settext ("Data Error!");}//Close stream out.close (); Br.close (); Close socket Socket.close (); } catch (Exception e) {//Todo:handle Exception log.e (Debug_tag, e.tostring ());}} }); } }
Server-side code:Java code
Package com.yarin.android.Examples_08_04; Import Java.io.BufferedReader; Import Java.io.BufferedWriter; Import Java.io.InputStreamReader; Import Java.io.OutputStreamWriter; Import Java.io.PrintWriter; Import Java.net.ServerSocket; Import Java.net.Socket; public class Server implements Runnable {public void run () {try {//create Ser Versocket ServerSocket serversocket = new ServerSocket (5554); while (true) {//accepts client requests for Socket clients = serversocket.accept (); System.out.println ("accept"); try {//Receive client message BufferedReader in = new BufferedReader (New in Putstreamreader (Client.getinputstream ())); String str = in.readline (); System.out.println ("read:" + str); Send a message to the server PrinTwriter out = new PrintWriter (new BufferedWriter (New OutputStreamWriter (Client.getoutputstream ())), true); OUT.PRINTLN ("Server Message"); Close flow out.close (); In.close (); } catch (Exception e) {System.out.println (E.getmessage ()); E.printstacktrace (); } finally {//close client.close (); System.out.println ("close"); }}} catch (Exception e) {System.out.println (E.getmessage ()); }}//main function, open server public static void main (String a[]) {Thread Desktopservert Hread = new Thread (new Server ()); Desktopserverthread.start (); } }