簡體   English   中英

套接字recv調用將線程凍結大約20分鍾。 5秒

[英]Socket recv call freezes thread for approx. 5 seconds

我有一個用C ++實現的客戶端服務器體系結構,在Windows 7下具有阻止套接字的功能。在達到一定負載水平時,一切都運行良好。 如果有幾個客戶端(例如,> 4個)正在接收或發送兆字節的數據,有時與一個客戶端的通信將凍結大約5秒鍾。 在這種情況下,所有其他客戶端都按預期工作。

緩沖區大小為8192字節,在服務器端的日志記錄如下:

TimeStamp(s.ms)-接收的字節

1299514524.618-8192

1299514524.618-8192

1299514524.618-0004

1299514529.641-8192

1299514529.641-3744

1299514529.641-1460

1299514529.641-1460

1299514529.641-8192

似乎在這5秒內只能讀取4個字節。 此外,我發現凍結時間始終約為5秒鍾-永遠不會少於4秒,也永遠不會超過6秒...

有任何想法嗎?

最好的祝福

麥可

在高負載的情況下,我遇到了這個問題:有時在倒數第二個數據包之前到達最后一個TCP數據包,因為沒有為包排序定義默認堆棧,這種混亂導致收到與您描述的結果類似的結果。

采用的解決方案是:在更多服務器中分配負載

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM