我有兩個進程通過TCP套接字彼此進行通信。進程A向進程B發送請求並等待響應。進程B處理請求併發送響應。對於某些請求,沒有必要將回復發送回進程A.如何解釋下面的QTcpSocket延遲?
假設進程A首先發送請求X,該請求不需要響應,並且緊接着發送請求Y,該請求確實需要響應,當A正在等待其插座上的數據(〜0.04s)時,觀察到明顯的小延遲。這是控制流:
A sends X
A sends Y
B handles X
B handles Y and writes response
(small delay in waitForReadyRead() in A of ~0.04s)
A receives response for Y
當我介紹了X的響應,以及,讓阿等待響應,延遲消失,而控制流程如下所示:
A sends X
B handles X and writes response
A receives response for X
A sends Y
B handles Y and writes response
A receives response for Y
這顯然是某種同步問題,但我無法解釋它。任何人都可以解釋在B不發送X響應的情況下引發的小延遲嗎?