IdTcpserver可以向客户端发送消息吗?(30分)

  • 主题发起人 主题发起人 cjf1009
  • 开始时间 开始时间
C

cjf1009

Unregistered / Unconfirmed
GUEST, unregistred user!
用idtcpserver和idtcpclient控件通信,客户端连接到服务器以后,我在服务器端可以向客户端发送消息吗?是不是只能idtcpclientidtcpserver发消息,idtcpserver才能回发一次?比如:
procedure TForm1.Button3Click(Sender: TObject);
begin
向其中一台发送字符串aaa;
end;
 
每一个客户端 连接的时候都有一个 handle 属性
可以建立一个二唯数据来存贮
 
我的意思是:类似于广播通知,服务器端群发,或者单独给某台机子发消息。
 
idtcpserver可以向客户端发送消息,你可以在大富翁论坛去找一下,我也做过这样的例子,如果有多个客户端,最好用多线程。
服务器端向客户端发送的一段代码:
procedure TForm1.SpeedButton1Click(Sender: TObject);
var
i : Integer;
AThread : TIdPeerThread;
begin
try
with IdTCPServer1.Threads.LockList do
for I := 0 to Count - 1 do
begin
AThread := Items;
if AThread.Connection.Socket.Binding.PeerIP = 'hostname' then
AThread.Connection.WriteLn(s);
end;
finally
IdTCPServer1.Threads.UnlockList;
end;
end;
 
多谢这位大哥,可以了。
但现在客户端那里又有问题了,怎么能让客户端一直监控那个端口,有消息之后就显示出来?
timer控件吗?我的老死机:
procedure Tfrmjianting.Timer1Timer(Sender: TObject);
var
ReMesg : string;
Nowtime : Tdatetime;
begin
Nowtime := now;
With Idtcpclient1 do
begin
remesg := readln();
if remesg<>'' then
log.Items.Add(DatetoStr(nowtime)+remesg);
end;
end;
 
接受答案了.
 
后退
顶部