El codigo del servidor en java seria:
import java.io.DataInputStream;
import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;
public class Server {
public static void main(String[] args) throws IOException
{
ServerSocket server=new ServerSocket(8000);
System.out.println("Comienzo del servidor!");
Socket client=server.accept();
DataInputStream in=new DataInputStream(client.getInputStream());//Datos que me manda el cliente
System.out.println("El cliente manda: "+ in.readUTF());//Lee el stream y lo transforma en UTF
}
}
y el codigo del cliente en android seria:
import java.io.DataOutputStream;
import java.io.IOException;
import java.net.Socket;
import java.net.UnknownHostException;
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
public class Socket2Activity extends Activity {
public String Ip="10.0.2.15";
public int Port=8000;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
final EditText c = (EditText)findViewById(R.id.editText1);
Button boton1=(Button) findViewById(R.id.button1);
boton1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
try {
Socket client=new Socket("localhost",8000);
DataOutputStream out=new DataOutputStream(client.getOutputStream()); //Escribimos al servidor
out.writeUTF("Hola servidor");
Log.i("conectado","conexion realizada con exito");
} catch (UnknownHostException e) {
c.setText("No entra 1");
e.printStackTrace();
} catch (IOException e) {
c.setText("No entra por excepcion");
e.printStackTrace();
}
}
});
}
}
siempre me salta la excepcion "No entra por excepcion", googleando encontre que debias de poner en el manifiesto los permisos:
<uses-permission android:name="android.permission.ACCESS_NETWORK_ST ATE"/>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE "/>
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.CHANGE_WIFI_MULTI CAST_STATE"/>
pero no arreglo nada... le estoy dando demasiadas vueltas y no lo consigo, por favor alguna ayuda? gracias!
