0

我正在尝试制作一个更快的套接字客户端来每次发送 RGB 颜色,更快的调用应该是每秒 1 到 10 次。

我正在使用这段代码:

try {
        socket = new Socket("192.168.0.9",1234);
        try {
              dataOutputStream = new DataOutputStream(socket.getOutputStream());


            //toServer = new BufferedWriter(new PrintWriter(socket.getOutputStream(),true));
            //out = new PrintWriter(new BufferedWriter(
            //      new OutputStreamWriter(socket.getOutputStream())), false);              
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    } catch (UnknownHostException e1) {
        Log.e("Error", "Error");
        e1.printStackTrace();
    } catch (IOException e1) {
        Log.e("Error", "Error");
        e1.printStackTrace();
    }

每次我从选择器更改颜色时,我都会调用此方法

dataOutputStream.writeUTF(";"+red+";"+green+";"+blue+";"+brightness+";");

我在 python 中尝试了一个相同的脚本,在 2 秒内 100 次,我没有任何滞后。我得到的是,python 服务器正在等待新请求,但 Android 需要时间通过套接字连接发送它们。我实际上尝试了 3 种不同的方法来实例化输出写入,但只有 DataOutputStream 足够快但仍然有一些滞后。

解决此问题的最佳方法是什么?

4

1 回答 1

0

在 DataOutputStream 和套接字之间放置一个 BufferedOutputStream,并在每次 writeUTF() 之后刷新 DOS。在对等端,使用 DataInputStream 而非 BufferedInputStream。

于 2013-02-23T23:29:21.647 回答