У меня возникли проблемы с отправкой данных с Android-клиента на настольный сервер через TCP через Wi-Fi. Эмулятор работает нормально, но на самом телефоне соединение невозможно установить. Исключено исключение «socket not connected».Android: «Socket Not Connected» Исключение
Я прикрепил свой код ниже. Любая помощь, пожалуйста? Большое спасибо!
// КОД внутри деятельности
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.send:
sendMessage();
return true;
/// ...other items
}
}
private void sendMessage() {
String serverAddr = "18.xxx.xx.xxx";
Socket socket = null;
try {
socket = new Socket(serverAddr, 4444); // EXCEPTION HAPPENS HERE
} catch (Exception e) {
//show exception on screen
}
String message = "some message";
try {
PrintWriter out = new PrintWriter(socket.getOutputStream(), true);
out.println(message);
} catch (Exception e) {
//show exception on screen
} finally {
socket.close();
}
}
Проблема заключается в том, что вы не знаете, какой тип сбоя у вас есть. Создайте код для использования Socketfactory, поскольку Socketfactory дает тип сбоя, чтобы вы знали, какой у вас недостаток, чем повторите попытку, чтобы узнать, какой тип сбоя у вас есть. .. это может быть соединение, тайм-аут или т.д .. –
@Fred: Спасибо, Фред. Проблема решена в соответствии с вашим предложением. – Crastinator