新手 刚刚接触 DELPHI 不久....
我想做一个简单的聊天程序
现在有个小问题:
SendTo(PeerIP,PeerPort,s[1],Length(s));
关于 服务端的 SendTo 方法 中的PeerIP 是一个固定的IP
怎样才能实现 服务器端 返回的信息 向 所有 客户端 都能发送呢?
还有 关于 indy 组件 的中文手册啊~ 书籍啊 啥的 推荐几个呗~
刚接触这个东西 一头雾水~
客户端procedure TForm1.btn1Click(Sender: TObject);
begin
  idpclnt1.Send(edt1.Text);
  mmo1.Lines.Add(idpclnt1.ReceiveString());
end;服务器端  procedure TForm1.idpsrvr1UDPRead(Sender: TObject; AData: TStream;
  ABinding: TIdSocketHandle);
var
  TempStream:TStringStream;
  s:string;
  i:Integer;
  Ip:array[0..10] of Byte;
begin
  TempStream:=TStringStream.Create('');
  TempStream.CopyFrom(AData,AData.Size);
  mmo1.Lines.Add(TempStream.DataString);
  s:=TempStream.DataString;
  with ABinding do
  begin
      SendTo(PeerIP,PeerPort,s[1],Length(s));
  end;
  TempStream.Free;
end;

解决方案 »

  1.   

    是这样的。如果你要对所有的用户操作的话,你必须把每一个用户的线程包装起来,然后统一放在一个list里面,例如threadlist然后当你要对所有用户发信息的时候,你就把这个list遍历。然后逐个对每个thread发送消息,这样就可以了,代码取网上找。。
      

  2.   

    你说的那个peerip 是当前被操作的用户的ip.
    比如说你有2个用户,ip分别是 192.168.0.12和192.168.0.13当0.12这个用户和服务器进行通信的时候,
    这个peerip就是192,168.0.12如果是0.13这个用户
    则peerip这个值就是192.168.0.13