一週間前にリモートマウスを開発しました。いろいろテストしましたが、OS に関連する不可解な問題を修正できません。(リモートアプリ、Win7とWin8の速度差)
そこで、作成した簡単なコードを使用して、PC と Android 間のリモート接続をテストしています。(以下のコードと結果を参照してください。) それらの間には少しの遅延時間 (約 200ms ) があります。マウスの動きが遅く感じたのはそのせいだと思います。だからギャップを減らしたい。どうにかしてください。そして、これはwin 7だけで起こるのだろうか. win 8で試したとき、ほとんどギャップはありません.
助けていただければ幸いです。読んでくれてありがとう :)
クライアント側 :
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Touch = (TextView) findViewById(R.id.Touch);
BtnCnt = (Button) findViewById(R.id.BtnConnect);
Touch.setOnTouchListener(new OnTouchListener() {
public boolean onTouch(View v, MotionEvent me) {
try {
c = Calendar.getInstance();
hour = c.get(Calendar.HOUR);
minute = c.get(Calendar.MINUTE);
second = c.get(Calendar.SECOND);
msecond = c.get(Calendar.MILLISECOND);
String CurTime = "(Android)" + hour + ":" + minute + ":"
+ second + ":" + msecond;
Touch.setText(CurTime);
dos.writeUTF(CurTime);
dos.flush();
} catch (Exception e) {
e.printStackTrace();
}
return true;
}
});
BtnCnt.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
Touch.setText("Connecting...");
Thread T1 = new Thread(new Runnable() {
public void run() {
try {
socket = new Socket(IP, PORT);
dos = new DataOutputStrea(socket.getOutputStream());
} catch (Exception e) {
e.printStackTrace();
}
}
});
T1.start();
}
});
}
と
サーバ側 :
try {
ss = new ServerSocket(PORT);
System.out.println("Server starts...");
s = ss.accept();
if (s.isConnected()) {
System.out.println("Client is connected.");
dis = new DataInputStream(s.getInputStream());
while (true) {
c = Calendar.getInstance();
c.getTime();
SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss:SSS");
data = dis.readUTF();
System.out.println("(Java)" + sdf.format(c.getTime())
+ " - " + data);
}
}
} catch (Exception e) {
e.printStackTrace();
}
と
結果 :
(Java)12:24:04:693 - (Android)0:24:4:319
(Java)12:24:04:693 - (Android)0:24:4:342
(Java)12:24:04:693 - (Android)0:24:4:351
(Java)12:24:04:693 - (Android)0:24:4:369
(Java)12:24:04:694 - (Android)0:24:4:386
(Java)12:24:04:694 - (Android)0:24:4:403
(Java)12:24:04:694 - (Android)0:24:4:421
= Java 受信時間 - Android 送信時間