![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Объект на основе TIdConnectionIntercept
Hogo © (2003-06-03 12:17:00)У меня есть вот такой объект
TMyTraffic=class(TIdConnectionIntercept)
private
RecvBytes,
SentBytes,
CurrentAddonRecv,
CurrentAddonSent: integer;
public
ConnectionIp: string;
procedure DataReceived(var ABuffer; const AByteCount: integer); virtual;
procedure DataSent(var ABuffer; const AByteCount: integer); virtual;
...
end;
Это другие обекты
TrafficStat=class
private
stat: TList;
...
public
constructor create;
destructor destroy; override;
...
function AddConnection(IP: string;FromPort: integer): TMyTraffic;
...
end;
TTrafficStatItem=class(TrafficStat)
private
...
TrafficList: TList;
function UpdateTraffic: integer;
public
end;
TMyProxyList=class
private
...
ProxyList: TList;
...
private
procedure OnConnect(AThread: TIdPeerThread);
...
public
...
function UpdateTraffic(IP: string): integer;
...
constructor Create;
destructor Destroy; override;
end;
В событии OnConnect делаю следующее
NewTraffic:=TMyTraffic.Create(nil);
NewTraffic:=TraffStat.AddConnection(PeerIp, Port);
if NewTraffic<>nil then
begin
AThread.Connection.Intercept:=NewTraffic;
AThread.Connection.InterceptEnabled:=true;
NewTraffic.Free;
В AddConnection происходит вот это
...
NewTraffic:=TMyTraffic.Create(nil);
NewTraffic.ConnectionIp:=inttostr(FromPort);
item:=TTrafficStatItem.create;
Item:=Stat.Items[Index];
item.TrafficList:=TList.create;
item.TrafficList.Add(NewTraffic);
Stat.Items[Index]:=Item;
result:=NewTraffic;
Проблема в том что вот эти две процедуры не вызываются ваабще
вседствии чего трафик не считается, прокси работает, а трафик не считается.
procedure DataReceived(var ABuffer; const AByteCount: integer); virtual;
( var ABuffer; const AByteCount: integer)
У меня есть вот такой объект
TMyTraffic=class(TIdConnectionIntercept)
private
RecvBytes,
SentBytes,
CurrentAddonRecv,
CurrentAddonSent: integer;
public
ConnectionIp: string;
procedure DataReceived(var ABuffer; const AByteCount: integer); virtual;
procedure DataSent(var ABuffer; const AByteCount: integer); virtual;
...
end;
Это другие обекты
TrafficStat=class
private
stat: TList;
...
public
constructor create;
destructor destroy; override;
...
function AddConnection(IP: string;FromPort: integer): TMyTraffic;
...
end;
TTrafficStatItem=class(TrafficStat)
private
...
TrafficList: TList;
function UpdateTraffic: integer;
public
end;
TMyProxyList=class
private
...
ProxyList: TList;
...
private
procedure OnConnect(AThread: TIdPeerThread);
...
public
...
function UpdateTraffic(IP: string): integer;
...
constructor Create;
destructor Destroy; override;
end;
В событии OnConnect делаю следующее
NewTraffic:=TMyTraffic.Create(nil);
NewTraffic:=TraffStat.AddConnection(PeerIp, Port);
if NewTraffic<>nil then
begin
AThread.Connection.Intercept:=NewTraffic;
AThread.Connection.InterceptEnabled:=true;
NewTraffic.Free;
В AddConnection происходит вот это
...
NewTraffic:=TMyTraffic.Create(nil);
NewTraffic.ConnectionIp:=inttostr(FromPort);
item:=TTrafficStatItem.create;
Item:=Stat.Items[Index];
item.TrafficList:=TList.create;
item.TrafficList.Add(NewTraffic);
Stat.Items[Index]:=Item;
result:=NewTraffic;
Проблема в том что вот эти две процедуры не вызываются ваабще
вседствии чего трафик не считается, прокси работает, а трафик не считается.
procedure DataReceived(var ABuffer; const AByteCount: integer); virtual;
procedure DataSent(var ABuffer; const AByteCount: integer); virtual;
Событие OnConnect срабатывает.
nikkie (2003-06-11 15:37:00) [21]
прежде чем писать свои компоненты, надо быть уверенным, что умеешь пользоваться готовыми. я так и не понял, умеешь ли ты пользоваться IdLogDebug (а не IdLogMessage, сорри).
yaJohn (2003-06-11 11:06:00) [22]
А ковырнутся в индевых сырцах и посмотреть кто когда и при каких условиях вызывает? Они (сырцы) бесплатные.
Hogo (2003-06-11 08:34:00) [23]
Выходит:
1) либо никто этого незнает.
2) знают но за бесплатно не отдадут.
Вопрос: За сколько?
Hogo (2003-06-06 06:22:00) [24]
I>
> а какой-нибудь IdLogMessage у тебя работает? ты, наверное,
> не активизировал его.
Есть IdLogDebug для чего его использовать?
nikkie (2003-06-04 22:16:00) [25]
а какой-нибудь IdLogMessage у тебя работает? ты, наверное, не активизировал его.
hogo (2003-06-04 21:40:00) [26]
Что никто не сталкивался с такой проблемой?