三
三皮
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)
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)