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 [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en