我建立的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调试一下