Модераторы: Snowy, Poseidon, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Избирательный подсчет входящего траффика, Не считать локальный и считать остальной 
:(
    Опции темы
ArkaNN
Дата 11.7.2005, 08:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 9.7.2005
Где: Санкт-Петербург

Репутация: нет
Всего: нет



Здравствуйте, Уважаемые!!!

Метод, описаный в теме http://forum.vingrad.ru/index.php?showtopic=49915 мне очень понравился, но в нем есть один недостаток для меня. Там нет никакой избирательности. Мне же надо не учитывать входящий траффик из локальной сети и сичтать весь остальной, т. е. из Интернета. Пока, что получается только методом "в лоб".

Код

type TRecvPacket = record
  Length: int64;
  IP_int: longword;
  IP_str: String;
end;

function GetRecvPacket(Socket: TSocket): TRecvPacket;
var Buff: array [1..1500] of Char;
    sa: sockaddr_in;
    l: integer;
begin
  result.Length:=recvfrom(Socket, Buff, SizeOf(Buff), 0, sa, l);
  try
    result.IP_int:=sa.sin_addr.S_addr;
    result.IP_str:=ConvertIP(sa.sin_addr.S_addr);
  except
    result.IP_int:=0;
    result.IP_str:='0.0.0.0';
    exit;
  end;
end;

procedure TForm1.Button1Click;
begin
  WSAStartup(MakeWord(2, 0), result);
  Socket:=OpenSocket(ASync, RAW);
  Traffic:=StrToInt(ReadFromFile(GetMainDir+'Data\Data2.adf'));
  while true do
  begin
    If Stop then
    begin
      WSACleanup;
      break;
    end;
    Packet:=GetRecvPacket(Socket);
    If (Packet.Length>0) and (Packet.IP_int [i]от 192.168.0.0 до 192.168.255.255[/i]) then
      Inc(Traffic, Packet.Length);
    Application.ProcessMessages;
  end;
end;


Но этот метод плохой, т. к. некоторые пакеты теряются и не считаются. Меня интересует уже очень давно: каким норамальным способом можно реализовать избирательный подсчет траффика (входящего)?

Заранее благодарен!!!
PM MAIL WWW ICQ   Вверх
RA
Дата 19.7.2005, 02:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Брутальный буратина
****


Профиль
Группа: Участник Клуба
Сообщений: 3497
Регистрация: 31.3.2002
Где: Лес

Репутация: 10
Всего: 115



Ну дык это пример от Rouse__ , а в каждом примере от него есть специальный подвох для нехороших человеков (в этом он сам признался).

Вот как сейчас вижу по этому куску кода максимальный размер пакета сущесвенно занижен до 1500 хотя он может быть больше. smile
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Сети"
Snowy
Poseidon
MetalFan

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делится вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи

Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Snowy, Poseidon, MetalFan.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Сети | Следующая тема »


 




[ Время генерации скрипта: 0.0436 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.