Это первый раз, когда я задаю вопрос здесь при переполнении стека, так что терпите меня.Я постараюсь сохранить это вкратце.
Я пишу простое клиентское приложение для Android-сокетов.На сервере, к которому я подключаюсь, есть чат-робот по имени Алиса.Мне удалось подключиться к серверу, и я получаю сообщение «Привет от Алисы», но затем кажется, что поток останавливается, потому что я больше не получаю сообщений.
Вот некоторый код:
@Override
public void run() {
try
{
while (true)
{
String _input = _rd.readLine();
if (_input != null)
{
_field.append("Alice : "+ _input+"\n");
}
else
{
_field.append("null");
}
sleep(50);
}
} catch (IOException e) {
e.printStackTrace();
}
catch (InterruptedException e) {
e.printStackTrace();
}
}
Как вы можете видеть, я пытался устранить неполадки в моем коде, добавив «null», даже если я не получаю сообщение, однако это не отображается в моем EditText.
Я звоню .start()
из моего основного класса Activity, когда пользователь нажимает кнопку.
@Override
public void onClick(View arg0) {
setContentView(R.layout.second);
InitiateSecondFrame();
_cs = new ClientSocket();
String _check = _cs.EstablishConnection(_host.getText().toString(),
Integer.parseInt(_port.getText().toString()),
(EditText)findViewById(R.id.historyField));
_cs.start();
Toast.makeText(getApplicationContext(), _check, 100).show();
SaveHostPort(_host.getText().toString(), _port.getText().toString());
}
});
Класс ClientSocket
расширен за счет Thread и реализует Runnable, я также пытался просто расширить или реализовать.Я не получаю никаких сообщений об ошибках вообще.Я надеюсь, что информации, которую я предоставил, достаточно, чтобы вы поняли, что не так.Помните, что я новичок в многопоточности и сокетах, поэтому я мог пропустить что-то фундаментальное.