0

一週間前にリモートマウスを開発しました。いろいろテストしましたが、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 送信時間

4

1 に答える 1