Я работаю над приложением для Android, которое при нажатии кнопки в приложении отправляет нажатие клавиши в список серверов на ПК. Все работает нормально, ожидайте проблемы с выходом "заикания" при быстром нажатии кнопки. Если на клиенте нажимать быстро, сервер «заикается» и иногда просто перестает отвечать на запросы. Используемая треска чрезвычайно проста. Для простого?
Серверная часть:
ServerSocket welcomeSocket = new ServerSocket(6789);
while(true)
{
Socket connectionSocket = welcomeSocket.accept();
BufferedReader inFromClient = new BufferedReader(new InputStreamReader(connectionSocket.getInputStream()));
keyin = inFromClient.readLine();
robby.translateAndForward(keyin);
}
}
catch (Exception ex)
....
На клиенте
public class ImageBoundListener implements OnTouchListener {
private ImageView view;
private static PadClient client;
Обработчик события On Touch
@Override
public boolean onTouch(View view, MotionEvent event) {
int action = event.getAction() & MotionEvent.ACTION_MASK;;
if (client==null)
{
client=new PadClient();
}
if (action==MotionEvent.ACTION_DOWN)
{
client.sender("A");
}
Integer actionCode = action & MotionEvent.ACTION_MASK;
Log.d(actionCode.toString()," Event occured on: "+view.getTag());
return true;
}
}
Фактическая реализация отправки
try{
Socket clientSocket = new Socket("192.168.1.104", 6789);
DataOutputStream outToServer = new DataOutputStream(clientSocket.getOutputStream());
System.out.println("Writing bytes to the server..");
outToServer.writeBytes(send);
clientSocket.close();
}
Не уверен, куда идти отсюда ...