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

TIdTCPClient如何得知 Server有傳訊息給它??

缺席
jeffreck
高階會員


發表:247
回覆:340
積分:197
註冊:2003-01-23

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-07-11 16:31:19 IP:61.218.xxx.xxx 未訂閱
TIdTCPClient如何得知 Server有傳訊息給它?? 使用TIdTCPClient及TIdTCPServer來傳送資料 TIdTCPClient如何得知 Server有傳資料給 Client 看了Chat 的範例是用一個 Timer物必件來檢測如下 procedure TForm1.Timer1Timer(Sender: TObject); var Com, Msg : String; begin if not IdTcpClient1.Connected then exit; // IdTCPClient1. Msg := IdTCPClient1.ReadLn('', 3); { Not a system command } listbox1.Items.Add(Msg); end; 但是在執IdTCPClient1.ReadLn('', 5) 時如 Server 尚未傳資料時 程式會停在那一行,直到 Server傳資料程式才會繼續執行 請問IdTCPClient1要如何才能得知Server有傳資料.....? 非常非常的謝謝你,因為有你這世界變的更美好 ☆ ^_^ ☆ °∴°﹒☆°.﹒‧°∴°﹒°.﹒‧°∴°﹒ ﹒‧°∴°﹒☆°.﹒‧°∴°﹒°.﹒‧°∴°﹒﹒‧°∴°﹒☆°.
jeffreck
高階會員


發表:247
回覆:340
積分:197
註冊:2003-01-23

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-07-11 16:54:33 IP:61.218.xxx.xxx 未訂閱
我是使用 Delphi 7 WinXP sp1 不知各位前輩會這樣嗎?
jeffreck
高階會員


發表:247
回覆:340
積分:197
註冊:2003-01-23

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-07-11 23:48:23 IP:61.70.xxx.xxx 未訂閱
我測式用Delphi6就不會這樣了,真奇怪 之後再吧Delphi7 的Indy更新到9.0.4 版,還是一樣?? This document provides some notes concerning Indy 9.0.4 beta. 不知各位前輩是否會有這樣的問題??
beball
一般會員


發表:7
回覆:4
積分:2
註冊:2004-01-02

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-04-20 17:39:54 IP:219.84.xxx.xxx 未訂閱
我也有相同的問題,我是在BCB5 上做的.. 麻煩知道的人告知一下..:(
japhenchen
高階會員


發表:51
回覆:444
積分:184
註冊:2003-07-23

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-04-23 18:05:53 IP:211.96.xxx.xxx 未訂閱
結案啦?那只好給大家自己去參考我的解決方案啦!這是IDTcpConnection的bug,解決方法如下~~~~    
procedure timer.ontimer.................
var temp:string;
begin
   idtcpclient.readfromstack(false,1,false);
   while idtcpclient.InputBuffer.Size>0 do begin
      temp:=idtcpclient.ReadLn;        
   end;
end;
藏私の禁止 發表人 - japhenchen 於 2004/04/23 18:08:29
jeffreck
高階會員


發表:247
回覆:340
積分:197
註冊:2003-01-23

發送簡訊給我
#6 引用回覆 回覆 發表時間:2004-04-25 23:34:50 IP:61.70.xxx.xxx 未訂閱
引言: 結案啦?那只好給大家自己去參考我的解決方案啦!這是IDTcpConnection的bug,解決方法如下~~~~
procedure timer.ontimer.................
var temp:string;
begin
   idtcpclient.readfromstack(false,1,false);
   while idtcpclient.InputBuffer.Size>0 do begin
      temp:=idtcpclient.ReadLn;        
   end;
end;
藏私?禁止 發表人 - japhenchen 於 2004/04/23 18:08:29
謝謝 japhenchen 前輩,我再試試看!!
系統時間:2024-05-04 3:00:21
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!