新手 刚刚接触 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;
我想做一个简单的聊天程序
现在有个小问题:
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;
比如说你有2个用户,ip分别是 192.168.0.12和192.168.0.13当0.12这个用户和服务器进行通信的时候,
这个peerip就是192,168.0.12如果是0.13这个用户
则peerip这个值就是192.168.0.13