Я пытаюсь сделать приложение для Android, которое отправит некоторые пакеты данных на встроенное устройство. Поскольку мое встроенное устройство не поддерживает протокол UDP-дейтаграммы, я бы хотел его смоделировать с использованием TCP-синхронизации.Threaded TCP connection - Android
При этом строка ответа с устройства не требуется, поэтому я хотел бы отключить TCP-сокет, как только данные будут отправлены из моего приложения.
Я был бы признателен, если бы кто-нибудь мог описать, как сделать поток, который будет выполнять соединение, и закрыть сокет, если в течение определенного периода времени данные не будут получены.
Мой текущий код прост:
try {
Socket s = new Socket("localhost",12345);
//outgoing stream redirect to socket
OutputStream out = s.getOutputStream();
PrintWriter output = new PrintWriter(out);
output.println("Hello Android!");
BufferedReader input = new BufferedReader(new InputStreamReader(s.getInputStream()));
//read line(s)
String st = input.readLine();
. . .
//Close connection
s.close();
} catch (UnknownHostException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Спасибо заранее !!!
Благодарим вас за понимание. Когда я вызываю новые SocketMgr (s); Я получаю следующее сообщение об ошибке: Gradle: не удается найти конструктор символов SocketMgr (java.net.Socket) Я относительно новичок в OOP :( – user2703038
Aw, извините, ошибка типографии, я обновил код, пожалуйста, еще раз проверьте. –
Еще раз спасибо Это, вероятно, вопрос для нового сообщения. Я определил разрешения для Интернета в манифесте, но когда я пытаюсь открыть сокет, приложение сработает. Я понятия не имею, почему код для TCP-соединения прост и понятен. – user2703038