or emulators. The code is as follows
Server:
Using java Syntax Highlighting
- 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);
- }
- }
- }
Parsed in 0.039 seconds, using GeSHi 1.0.8.4
Client:
Using java Syntax Highlighting
- 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);
- }
- }
- }
Parsed in 0.038 seconds, using GeSHi 1.0.8.4
The problem can be seen from the log files
Server:
Using java Syntax Highlighting
- D/TCP ( 700): S: Connecting...
Parsed in 0.032 seconds, using GeSHi 1.0.8.4
Clinet:
Using java Syntax Highlighting
- 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.
Parsed in 0.036 seconds, using GeSHi 1.0.8.4
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.

