client:
請問 indy不管是tcp還是udp
傳送訊息只有馬上接訊息的規則嗎?
有� onRead的事件可以使用嗎?
當然,使用過Ping沒有?不是有個TTL嗎?當一個封包超過那個時間就會被Router丟掉,不在一定時間讀取,訊息是會不見的!
OnRead是Client當發現有訊息進來的事件,讀取訊息就在那個事件裡面處理。

server:
請問可以知道� 每個client的編號
藉由編號�� 回傳想要的值 給特定編號的client端嗎?
寫過你就知道!
Server端會為每個連進來的Client儲存一個連線資訊,如果沒記錯的話是Socket Handle吧!運用這個Handle來辨識每個Client,動手去做一做可以有更深刻的印象!



------實做如下--------
clinet:
thread模擬onread
TClientExecute = class(TThread)
  private
    FReadStr: String
  protected
    procedure ShowOnForm;
  public
      procedure execute;override;
end;



procedure TClientExecute.execute;
var str:string;
begin
     FReadStr := Form1.IdTCPClient1.IOHandler.ReadLn;
     Synchronize(ShowOnForm);
end;



procedure TClientEXecute.ShowOnForm;
begin
    form1.memo1.lines.add(FReadStr);
end;


server:
當clients連進來後   onbuttondown事件(將來放server onexecute事件中)
for i:=0 to idtcpserver1.Contexts.LockList.Count -1 do
    TIdContext(idtcpserver1.Contexts.LockList.Items[i]).Connection.IOHandler.writeln('0000');