Я пытаюсь передать значения клавиатуры клиенту Android, чтобы отправить его на сервер.
Я использую потоки, но не хочу запускать новый поток или вызывать socketconnect
каждый раз.Вместо этого я хочу запустить один поток, открыть соединение с сокетом, а затем использовать тот же поток и уже открытый сокет, чтобы передать некоторые значения на сервер с клавиатуры.
В моем случае подойдет работающий пример с обработчиком, но я не знаю, как его кодировать.ASYNCTASKS
не поможет, так как соединение будет открываться снова и снова.
Мой класс подключения -
class conThread implements Runnable {
public Handler dataHandler = new Handler() ;
@Override
public void run() {
try {
InetAddress serverAddr = InetAddress.getByName(SERVER_IP);
socket = new Socket(serverAddr, SERVERPORT);//}
} catch (IOException e) {
e.printStackTrace();
}
}
}
**and my button has got the below code to send values to the thread for passing on to the server **
public void dataSend(View view) {
conThread con = new conThread();
new Thread(con).start();
con.dataHandler.post(new Runnable() {
public void run() {
try {
PrintWriter out = new PrintWriter(socket.getOutputStream());
Log.d("Client", "S: data");
out.print("3333");
out.flush();
} catch (IOException e) {
e.printStackTrace();
}
}
});
}
Я подключаюсь к серверу, но после этого получаю сбой.