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

IdTcpServer傳送資料至指定Client端的問題

尚未結案
juney
一般會員


發表:2
回覆:0
積分:0
註冊:2005-07-17

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-10-19 18:48:31 IP:210.66.xxx.xxx 未訂閱
請問各位前輩,我利用IdTcpServer的物件來實現類似聊天室的功能,也在Server端中取得了各個Handle值,如果我要指定內容傳達至指定Handle的那個Client端的話,請問要使用哪個屬性語法,謝謝前輩的回答!
Vicen
高階會員


發表:13
回覆:145
積分:151
註冊:2005-03-14

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-10-21 09:34:49 IP:221.226.xxx.xxx 未訂閱
应该先取得你要发送至客户端的 TIdPeerThread    AThread:TIdPeerThread    获得TIdPeerThread方法很多,如果在IdTCPServerExecute事件中,IdTCPServerExecute会将其用参数方式带入,可以直接使用。 IdTCPServerExecute(AThread: TIdPeerThread); 如果要在其它地方引用,应当在IdTCPServerConnect(AThread: TIdPeerThread);事件中对上线的机器进行链表记录。 或者直接用:
Var
  List : Tlist;
  
  List := IdTCPServer.Threads.LockList;
  TidPeerThread(List.Items[i]).Connection.Write(Cmd);
这个是发送命令到所有客户端的代码:
procedure SendCmdToAll(CMD:String);
var
  List: TList;
  I: Integer;
begin
  List := IdTcpServer.Threads.LockList;
  try
    for I := 0 to List.Count - 1 do
    begin
      try
        TIdPeerThread(List.Items[I]).Connection.Write(CMD);
      except
        on E: Exception do
        begin
          TIdPeerThread(List.Items[I]).Stop;
        end;
      end;
    end;
  finally
    IdTcpServer.Threads.UnlockList;
  end;
end;
//总之都是利用TIdPeerThread的方法,所以能得到TIdPeerThread的话就没有任何问题。 AThread.Connection.Write(Cmd); 發表人 - vicen 於 2005/10/21 09:38:57
Ktop_Robot
站務副站長


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

發送簡訊給我
#3 引用回覆 回覆 發表時間:2007-04-18 17:32:26 IP:000.000.xxx.xxx 未訂閱
提問者您好:


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


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


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

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