android socket问题,第一次发数据很慢

我建立的socket在刚连接上网络助手的时候,为什么第一次发消息很慢(很少情况下能正常发送)第一次发送成功后再发送就很快。我知道应该和socket的内部实现机制有关,但不知道为什么。有没有大神帮解释下?谢谢,谢谢,谢谢。下面是发送数据的代码,发的数据是十六进制。

public void send_data(){
String temp = "";

            try {
                    out = new PrintWriter(new BufferedWriter(new OutputStreamWriter(Caller.socket.getOutputStream())),true);
            } catch (IOException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
            }                        
            for(int i=0; i<data.length; i++)
            {
                    temp +=(char) data[i];
            }
            out.printf(temp);
            //out.println(data);

    }

抓包看看 ,是在建立连接的时候慢,还是真正的在发送第一包数据的时候慢。

我个人的理解:TCP是面向连接的通信协议,通过三次握手建立连接,刚开始建立连接的时间较长,而完成连接之后,就只需要发送东西。

我觉得应该是你的程序造成的问题,而不是所谓的第一次发送慢

网络数据如果你这里没有控制速度肯定是对方控制的,第一次说明连接花费时间很长,问题应该出在你的网络助手上,自己写个demo调试一下