请教,小问题!tcp(30分)

  • 主题发起人 主题发起人 三皮
  • 开始时间 开始时间

三皮

Unregistered / Unconfirmed
GUEST, unregistred user!
我是初学者,各位大侠帮忙!我读了这么一段程序
procedure TForm1.IdTCPServer1Execute(AThread: TIdPeerThread);
var
S : String;
i : Integer;
begin
S := AThread.Connection.ReadLn(#10#10, 100);
S := Trim(S);
if S <> '' then
begin
Memo1.Lines.Add(S);
with IdTCPServer1.Threads.LockList do
begin
try
for i := 0 to Count - 1 do
begin
aThread := Items;
aThread.Connection.WriteLn(S + #10#10);
end;
finally
IdTCPServer1.Threads.UnlockList;
end;
end;
end;
end;
问:onExecute 发生的是在tidpeerthread 试图完成一个tidpeerthread.run method 时执行的,那么服务器是接受数据了,对ReadLn(#10#10, 100)中两个参数不胜理解?且为什么后来要写数据而且所有连接线程都写?这样是实现了广播吗?如果数据量大的话,这种方式的广播是最佳的吗?即:aThread.Connection.WriteLn(S + #10#10)
 
#10#10应该是消息边界,100应该是最大读的字符数,上面的程序不是广播,是向所有连接到服务器上的客户端转发消息
 
接受答案了.
 

Similar threads

S
回复
0
查看
1K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
900
SUNSTONE的Delphi笔记
S
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
后退
顶部