不知是不是IdTCPServer 9.0.18的嚴重BUG |
尚未結案
|
guanyueguan
一般會員 發表:1 回覆:4 積分:1 註冊:2005-02-04 發送簡訊給我 |
各位大大:
小弟在用IdTCPServer作一個處理Server,Client的數量也有幾百個,因為IdTCP時間長了沒有資料傳輸就容易斷線,而且Client意外關機或網絡意外中斷也有很多偵測不到,所以我在Server中做了心跳信息傳輸,每隔一分鐘就發一次心跳信息。
Server是多線程處理的,由一個線程專門處理Client傳輸的資料,由一個線程專門發送心跳信息。起初沒用臨界區,只是用線程的Synchronize同步。後來發現有些問題,就用了臨界區,但是嚴重的問題來了,發心跳信息時經常停掉,而且停的沒有規律,有時是運行不到幾分鐘,有時是一、兩天,更多的是1小時左右。經過跟蹤發現是在 Threads->LockList() 之後引起的,但是沒有引發任何錯誤,我懷疑是死鎖,而且停Server時也一直停在 Server->Active = false 的地方。
這個問題找了很久,而且又無法隨時再現,一直沒有頭緒,在這裡希望各位大大指點迷津。
|
guanyueguan
一般會員 發表:1 回覆:4 積分:1 註冊:2005-02-04 發送簡訊給我 |
|
guanyueguan
一般會員 發表:1 回覆:4 積分:1 註冊:2005-02-04 發送簡訊給我 |
|
Ktop_Robot
站務副站長 發表:0 回覆:3511 積分:0 註冊:2007-04-17 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |