Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Объект на основе TIdConnectionIntercept


Страницы:   1 2

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]

Что никто не сталкивался с такой проблемой?


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо