看看这段代码...(0分)

  • 主题发起人 主题发起人 samen
  • 开始时间 开始时间
S

samen

Unregistered / Unconfirmed
GUEST, unregistred user!
procedure TForm1.TCPServerExecute(AThread: TIdPeerThread);
var
SRequest: string;
SOutline: string;
AStream: TFileStream;
const
EOL: string = #13#10;
begin
with AThread.Connection do
begin
AThread.Synchronize(IncrConnectionCount);
//这里是线程同步函数吗?
WriteLn('Hello from Indy TCP Stream Server.');
try
SRequest := UpperCase(ReadLn);
if SRequest = 'OUTLINE' then
begin
AStream :=Tfilestream.Create('c:/a.txt',fmOpenREAD);
OpenWriteBuffer;
WriteStream(AStream);
CloseWriteBuffer;
AStream.Free;
end;

finally
Disconnect;
AThread.Synchronize(DecrConnectionCount);
end;
end;
end;

procedure TForm1.IncrConnectionCount;//这个过程起到什么作用??
begin
Inc(FConnectionCount);
Inc(FRequestCount);
Edit1.Text := IntToStr(FConnectionCount);
Edit2.Text := IntToStr(FRequestCount);
Edit1.Invalidate;
Edit2.Invalidate;
end;

procedure TForm1.DecrConnectionCount;//这个过程起到什么作用?
begin
Dec(FConnectionCount);
Edit1.Text := IntToStr(FConnectionCount);
Edit1.Invalidate;
end;
 
1.AThread.Synchronize(IncrConnectionCount);
//这里是线程同步函数吗?
是啊!
2.只不过记录连接数,实时监视
 
这个程序很简单,如有请求,则连接数+1,刷新界面,请求完毕连接数-1,刷新界面.
关于Synchronize去看delphi的线程说明
 
如果在TCPServerExecute里实现多线程应该怎样修改???
 

Similar threads

后退
顶部