поток подключения сокета Android - PullRequest
0 голосов
/ 02 февраля 2012

Я использую Socket для подключения к локальному серверу:

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();

, это работает, но если я проверяю имя пользователя и перехожу к следующему действию

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

я не могу использовать (соединение всегда открыто)

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

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

почему?как организовать подключение справа?

1 Ответ

0 голосов
/ 02 февраля 2012

Полагаю, вам не следует пытаться создавать новые потоки In и Out - это было объявлено и инициализировано в первом действии.Просто позвоните Connection03Activity.clientSocket.getOutputStream().writeBytes(...).

Оффтоп:

Не забудьте закрыть потоки и сокет при закрытии приложения - это сэкономит заряд батареи и трафик.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...