線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1124
推到 Plurk!
推到 Facebook!

請問server如何丟訊息給多個client端?

尚未結案
jimoodelphi
一般會員


發表:2
回覆:3
積分:1
註冊:2004-06-04

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-06-07 14:21:04 IP:140.115.xxx.xxx 未訂閱
大家好 抱歉~剛接觸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

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-06-07 16:04:35 IP:202.39.xxx.xxx 未訂閱
試試在 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

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-06-07 23:48:58 IP:140.115.xxx.xxx 未訂閱
謝謝你的回答~ 嗯~我還有一些疑問~ 其實我不太會用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

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-06-08 09:09:47 IP:202.39.xxx.xxx 未訂閱
失禮, 我錯了 您可以參考 Indy Demo 裏的 Chat demo 它用一個 TSimpleClient 來記錄每個 client 連線
jimoodelphi
一般會員


發表:2
回覆:3
積分:1
註冊:2004-06-04

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-06-09 20:31:06 IP:140.115.xxx.xxx 未訂閱
嗯~謝謝你~ 我的問題有點麻煩~ 我有去找了一些範例~ 但是看不太懂或是不是delphi7的~ 可否有一些簡單的範例建議~ 我只要兩個client端能連線~一個server端~ client端丟訊息給server端~ server端能"同時"丟訊息給兩個client端~ server也能將client1端的資料接收後~丟給client2~ 如果有的話(delphi7的)~麻煩給個連結~非常感激~ 發表人 - jimoodelphi 於 2004/06/09 20:32:12
hagar
版主


發表:143
回覆:4056
積分:4445
註冊:2002-04-14

發送簡訊給我
#6 引用回覆 回覆 發表時間:2004-06-10 08:14:58 IP:202.39.xxx.xxx 未訂閱
Chat Demo 就是了啊!
Ktop_Robot
站務副站長


發表:0
回覆:3511
積分:0
註冊:2007-04-17

發送簡訊給我
#7 引用回覆 回覆 發表時間:2007-04-26 13:51:45 IP:000.000.xxx.xxx 未訂閱
提問者您好:


以上回應是否已得到滿意的答覆?


若已得到滿意的答覆,請在一週內結案,否則請在一週內回覆還有什麼未盡事宜,不然,
將由版主(尚無版主之區域將由副站長或站長)自由心證,選擇較合適之解答予以結案處理,
被選上之答題者同樣會有加分獎勵同時發問者將受到扣 1 分的處分。不便之處,請見諒。


有問有答有結案,才能有良性的互動,良好的討論環境需要大家共同維護,感謝您的配合。

------
我是機器人,我不接受簡訊.
系統時間:2024-05-15 16:33:38
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!