全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1256
推到 Plurk!
推到 Facebook!

Indy 8 的 idUDPServer 偶爾會停止回應,請大家幫忙看看!

缺席
jaya
初階會員


發表:9
回覆:70
積分:30
註冊:2002-05-22

發送簡訊給我
#1 引用回覆 回覆 發表時間:2002-11-07 17:10:25 IP:211.21.xxx.xxx 未訂閱
我用idUDPServer寫了一個Windows 2000的服務.平常時運作良好,可是偶爾會停止回應.此時服務本身是正常的. 我在程式裡加了一個timer定時偵測UDPServer的狀況,結果也都是Active的. 但是,UDPServer本身無法再接收訊息了. 只要我重新啟動這個服務,就又可以正常運作了. 我加了一個計數器,用來計算接收的訊息數量.有時是接收6000多次才停止,有時是七、八十次就揨止了. 看了很久都找不到原因,麻煩各位前輩幫忙指導一下,謝謝~ UDPServer接收資料的程式碼如下(為節省版面,只附上與網路有關的部份)
procedure TServiceName.UDPServerUDPRead(Sender: TObject; AData: TStream;
  ABinding: TIdSocketHandle);
var
  DataStringStream: TStringStream;
  lists : TStringlist;
begin
  try
     lists := TStringlist.Create;   // 收到的訊息
     DataStringStream := TStringStream.Create('nill');
     try
         DataStringStream.CopyFrom(AData, AData.Size);
         lists.Text := DataStringStream.DataString;
         {這裡是處理lists.text的程式碼,主要是存入LogFile}
         ReplyMsg := 'OK';
         ABinding.SendTo(ABinding.PeerIP, ABinding.PeerPort, ReplyMsg[1], Length(ReplyMsg));
     except
         LogToFile.WriteToLogFile('回傳訊息有誤',0,0); //這是另外安裝的元件,功能是將文字附加於指定檔案
     end;
  Finally
      lists.Free;
      DataStringStream.Free;
  end;
end;
發表人 - jaya 於 2002/11/07 17:12:17
cq_139
一般會員


發表:0
回覆:1
積分:0
註冊:2003-02-22

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-02-23 15:06:59 IP:202.104.xxx.xxx 未訂閱
能不能告诉我,你的服务程序是怎样在Win2000下调试的? 我在NT下调还可以,移到Win2000下就不行了.谢谢!
jaya
初階會員


發表:9
回覆:70
積分:30
註冊:2002-05-22

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-02-27 11:42:20 IP:210.64.xxx.xxx 未訂閱
Sorry ,我不了解您「調試」是什麼意思? 我就只是寫個exe檔的服務 然後用regsvr32 註冊就可以用了.
javarun
一般會員


發表:0
回覆:1
積分:0
註冊:2003-08-17

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-08-17 16:27:52 IP:61.174.xxx.xxx 未訂閱
我也遇到了类似的问题,真头痛的啊
jaya
初階會員


發表:9
回覆:70
積分:30
註冊:2002-05-22

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-08-18 20:49:36 IP:61.216.xxx.xxx 未訂閱
目前找到的原因: 如果是收到訊息時,直接引用 ABinding.SendTo 若是此時傳送失敗,就會造成上述的問題 比較保險的方式:將對方的IP及開放的Port另外保存下來 再開啟一個 idUDPClient 來發送訊息. 這時候發送失敗也無所謂 UDP 本來就是不保證送達的.
系統時間:2024-05-05 18:03:55
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!