Android socket客户端速度慢

时间:2013-02-23 22:09:05

标签: sockets

我试图让每次发送更快的套接字客户端发送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才足够快但仍有一些滞后。

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

1 个答案:

答案 0 :(得分:0)

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