• 主页
  • 招聘
  • 语言基础/算法/系统设计
  • 数据库相关
  • 图形处理/多媒体
  • 网络通信/分布式开发
  • VCL组件开发及应用
  • Windows SDK/API

关于indy的TidTCPServer应用的问题,大家讨论!!

china0504 2005-03-18 03:06:39
每个TCP连接在用户登陆(login)后建立连接对象(TTcpConnect)负责处理该连接的数据,一般的方法是使用TCPServer的OnExecute事件,但我想在TTcpConnect建立Execute方法代替TCPServer.execute 处理该连接数据。那位有什么办法???我研究了若干天了。
下面是我发现的跟execute有调用关系统的代码到function TIdContext.Run时就找不到是谁调用了他。
function TIdContext.Run: Boolean;
begin
if Assigned(OnRun) then begin
Result := OnRun(Self);
end else begin
Result := True;
end;
end;

procedure TIdListenerThread.Run;
begin
……………………………………………
LContext := Server.FContextClass.Create(LPeer, LYarn, Server.Contexts);
// We set these instead of having the context call them directly
// because they are protected methods. Also its good to keep
// Context indepent of the server as well.
LContext.OnBeforeRun := Server.DoConnect;
LContext.OnRun := Server.DoExecute;
LContext.OnAfterRun := Server.DoDisconnect;
End;

function TIdTCPServer.DoExecute(AContext: TIdContext): Boolean;
begin
if Assigned(OnExecute) then begin
OnExecute(AContext);
end;
Result := False;
if AContext <> nil then begin
if AContext.Connection <> nil then begin
Result := AContext.Connection.Connected;
end;
end;
end;

...全文
167 点赞 收藏 2
写回复
2 条回复
Heyongfeng 2005年03月21日
回复 点赞
redmoon_line 2005年03月19日
关注
回复 点赞
发动态
发帖子
Delphi
创建于2007-08-02

1463

社区成员

26.2w+

社区内容

Delphi 开发及应用
社区公告
暂无公告