0
我有一個設備,發送帶有1440byte有效載荷的TCP數據包,非常快,到Windows XP操作系統。我將TcpAckFrequency設置爲0,即在收到包後立即發回ACK。 我寫了一個線程讀取與插座的Java應用程序:TCP接收窗口大小總是滿的
in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
in.read(charArray, 0, 720);
我的問題是,Windows緩衝區已滿收到一些(50-60)報文後,在那之後發送ACK DUP減慢了通訊。
我不明白爲什麼變得滿了,因爲我總是讀緩衝區?
問題是我收到一個數據包後繪製圖形,由於繪製過程可能窗口沒有足夠的時間來釋放緩衝區。現在,我跳過了繪圖功能,工作正常。 謝謝! – Tomi 2012-04-18 14:52:35