為何會產生overflow |
缺席
|
甘蔗夫
一般會員 發表:76 回覆:19 積分:19 註冊:2004-08-25 發送簡訊給我 |
Dear 大大:
我為了要得到長時間連續ping的結果,我的程式如下,但ping幾個小時之後,卻發現overflow,請問是否有解,謝謝 TStringList *IP_List; int CCNT,PingCNT; void __fastcall TForm1::StartBTNClick(TObject *Sender) { CCNT =100; IP_List = new TStringList; IP_List->Clear(); PingCNT=0; for (int i=0 ; i IP_List->Add("192.168.1." IntToStr(i 2)); } Ping(this); } //--------------------------------------------------------------------------- void __fastcall TForm1::Ping(TObject *Sender) { for( int i=0 ; i IdIcmpClient1->Host=IP_List->Strings[i]; IdIcmpClient1->ReceiveTimeout= 1000; try { IdIcmpClient1->Ping(); } catch(Exception &e) { ShowMessage(e.Message.c_str()); } } } //--------------------------------------------------------------------------- void __fastcall TForm1::IdIcmpClient1Reply(TComponent *ASender, const TReplyStatus &AReplyStatus) { AnsiString szReport; PingCNT ; TDateTime TD=Date().CurrentDateTime(); if(AReplyStatus.FromIpAddress=="0.0.0.0" && AReplyStatus.TimeToLive==0) { szReport=" Request timed out on " TD; } else { if(AReplyStatus.MsRoundTripTime==0) { szReport.sprintf("Reply from %s: bytes=%d time<1ms TTL=%d %s", AReplyStatus.FromIpAddress, AReplyStatus.BytesReceived, AReplyStatus.TimeToLive,AnsiString(TD)); } else { szReport.sprintf("Reply from %s: bytes=%d time=%dms TTL=%d %s", AReplyStatus.FromIpAddress, AReplyStatus.BytesReceived, /AReplyStatus.MsRoundTripTime, AReplyStatus.TimeToLive,AnsiString(TD)); } } Memo1->Add(szReport); if(PingCNT==(CCNT)) { PingCNT=0; Memo1->Clear(); Ping(this); } } |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |