flujo de conexión de socket android

Utilizo Socket para conectarme a mi servidor local:

public static Socket clientSocket;
public static DataOutputStream outToServer;
public static DataInputStream inToServer;

...

clientSocket = new Socket("192.168.1.102", 15780);
outToServer = new DataOutputStream(clientSocket.getOutputStream());
inToServer = new DataInputStream(clientSocket.getInputStream());
outToServer.writeBytes(nameStr + "\n");
outToServer.flush();

funciona, pero si verifico el nombre de usuario y voy a la siguiente actividad

Intent i = new Intent(this, RoomClass.class);
startActivity(i);

no puedo usar (la conexión siempre está abierta)

outToServer = new DataOutputStream(Connection03Activity.clientSocket.getOutputStream());
inToServer = new DataInputStream(Connection03Activity.clientSocket.getInputStream());

outToServer.writeBytes(str + "\n");
outToServer.flush();

¿Por qué? ¿Cómo organizar correctamente la conexión?

preguntado el 02 de febrero de 12 a las 11:02

1 Respuestas

Supongo que no debería intentar crear nuevos flujos de entrada y salida; se declaró e inicializó en la primera actividad. Solo llama Connection03Activity.clientSocket.getOutputStream().writeBytes(...).

Offtopic:

No olvide cerrar las transmisiones y el zócalo al cerrar la aplicación; esto ahorrará la vida útil de la batería y el tráfico.

Respondido 02 Feb 12, 15:02

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.