請問server如何丟訊息給多個client端? |
尚未結案
|
jimoodelphi
一般會員 發表:2 回覆:3 積分:1 註冊:2004-06-04 發送簡訊給我 |
大家好 抱歉~剛接觸delphi不久~想問個問題~ 我想寫個網路小程式~ 有一個server對兩個client~ 現在我遇到的問題是~ 第一個client送訊息給server後~server會更新線上人數列表並回應給第一個client~ client2丟訊息給server也能更新server列表~但我想讓client2丟訊息給server後~server也同時能回個訊息給client1(更新client端的線上人數列表)~
目前cilent1跟client2的會員列表無法同時更新~ 請問我要怎麼寫比較好~
是否可以判斷目前有多少個thread~然後針對其中一個thrtead去傳訊? 謝謝大家 ps.我是用delphi7裡面indy提供的idtcpclient/idtcpserver~
|
hagar
版主 發表:143 回覆:4056 積分:4445 註冊:2002-04-14 發送簡訊給我 |
試試在 TIdTcpServer 的 OnExecute 事件中:
procedure TForm1.IdTCPServer1Execute(AThread: TIdPeerThread); var i: integer; it: TIdPeerThread; begin for i := 0 to IdTcpServer1.Threads.LockList.Count - 1 do begin // 取得每個 Thread it := TIdPeerThread(IdTcpServer1.Threads.LockList.Items[i]); // 以下做更新列表的動作 end; end; |
jimoodelphi
一般會員 發表:2 回覆:3 積分:1 註冊:2004-06-04 發送簡訊給我 |
謝謝你的回答~ 嗯~我還有一些疑問~ 其實我不太會用thread~ 所以我想問一下那個LockList.Count是指不包含目前正在處理的這個thread嗎? 好比處理client2連線時~count=1(只有算client1的) 因為我嘗試去測試~可是兩個client端連線沒有辦法讓i的值變成2 ~請問我可能那邊出錯了? 還有我想請問一下~ 網路連線是不是通常寫成一次連接然後就斷線~要再傳訊息就再連線一次~ 謝謝回答~感激~ 發表人 - jimoodelphi 於 2004/06/08 00:07:33
|
hagar
版主 發表:143 回覆:4056 積分:4445 註冊:2002-04-14 發送簡訊給我 |
|
jimoodelphi
一般會員 發表:2 回覆:3 積分:1 註冊:2004-06-04 發送簡訊給我 |
|
hagar
版主 發表:143 回覆:4056 積分:4445 註冊:2002-04-14 發送簡訊給我 |
|
Ktop_Robot
站務副站長 發表:0 回覆:3511 積分:0 註冊:2007-04-17 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |