Hello, I have created a simple server and client both on android phone or emulators. The code is as follows
Server: import java.io.BufferedReader; import java.io.InputStreamReader; import java.net.ServerSocket; import java.net.Socket; import android.app.Activity; import android.os.Bundle; import android.util.Log; import android.widget.TextView; public class AndroidServer extends Activity { /** Called when the activity is first created. */ public static TextView tv; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // setContentView(R.layout.main); tv = new TextView(this); tv.setText("Main - server"); setContentView(tv); Thread sThread = new Thread(new TCPServerTest()); sThread.start(); } } class TCPServerTest implements Runnable{ public static final String SERVERIP = "10.0.2.15"; public static final int SERVERPORT = 4444; public void run() { try { Log.d("TCP", "S: Connecting..."); ServerSocket serverSocket = new ServerSocket (SERVERPORT); while (true) { Socket client = serverSocket.accept(); Log.d("TCP", "S: Receiving..."); try { BufferedReader in = new BufferedReader(new InputStreamReader(client.getInputStream())); String str = in.readLine(); Log.d("TCP", "S: Received: '" + str + "'"); AndroidServer.tv.setText(str + " ------ " + SERVERIP); } catch(Exception e) { Log.e("TCP", "S: Error", e); } finally { client.close(); Log.d("TCP", "S: Done."); } } } catch (Exception e) { Log.e("TCP", "S: Error", e); } } } Client: import java.io.BufferedWriter; 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.widget.TextView; public class AndroidClient extends Activity { /** Called when the activity is first created. */ public TextView tv; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // setContentView(R.layout.main); tv = new TextView(this); tv.setText("Main - client"); setContentView(tv); Thread cThread = new Thread(new TCPClientTest()); cThread.start(); } } class TCPClientTest implements Runnable { public void run() { try { InetAddress serverAddr = InetAddress.getByName("10.0.2.2"); Log.d("TCP", "C: Connecting..."); Socket socket = new Socket(serverAddr, 5555); String message = "Hello from Client"; try { Log.d("TCP", "C: Sending: '" + message + "'"); PrintWriter out = new PrintWriter( new BufferedWriter ( new OutputStreamWriter(socket.getOutputStream())),true); out.println(message); Log.d("TCP", "C: Sent."); Log.d("TCP", "C: Done."); } catch(Exception e) { Log.e("TCP", "S: Error", e); } finally { socket.close(); } } catch (Exception e) { Log.e("TCP", "C: Error", e); } } } The problem can be seen from the log files Server: D/TCP ( 700): S: Connecting... Clinet: D/TCP ( 703): C: Connecting... D/TCP ( 703): C: Sending: 'Hello from Client' I/global ( 703): Default buffer size used in BufferedWriter constructor. It would be better to be explicit if an 8k-char buffer is required. D/TCP ( 703): C: Sent. D/TCP ( 703): C: Done. Note when i run the program the server has id 5554 and the client id 5556 from the emulators. I have used ./adb -s 5554 forward tcp:4444 tcp:5555 However the client message fails to send to the server. Does anyone have any idea why? I have tried doing ./adb -s 5556 forward tcp:5555 tcp:4444 in case that was the problem but i had no luck. Help would be very much appreciated. -- You received this message because you are subscribed to the Google Groups "Android Developers" group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en