Измерение потока данных данных через сокет сервер / клиент в Delphi? - PullRequest
4 голосов
/ 07 сентября 2011

Я делаю программу, которая передает данные между серверной программой и ее клиентами.Все они используют компоненты сокетов сервера и клиента, найденные в Delphi!Я посмотрел в Интернете и не могу найти способ, как измерить, сколько данных было передано через сокет!Любая помощь, особенно некоторый код (pascal / Delphi), была бы очень признательна!

Ответы [ 4 ]

2 голосов
/ 07 сентября 2011

здесь у вас есть полный пример http://delphi.about.com/od/fullcodeprojects/l/aa112903a.htm

1 голос
/ 07 сентября 2011

Magenta Systems имеет бесплатный набор компонентов, которые могут отслеживать сетевой трафик с использованием необработанных сокетов или WinPcap .

Обновление:

Из вашего комментария к ответу RBA: компоненты Magenta позволяют вам идентифицировать и различать различные IP-адреса и службы (порты).

1 голос
/ 07 сентября 2011

Если вы используете Win / * nix API-сокеты (не специальные библиотеки), вы должны считать результаты от recv и send функций.

total_data = 0;
...
...
get_data = recv(...)
total_data = total_data + get_data
...
send_data = send(...)
total_data = total_data + send_data
0 голосов
/ 08 сентября 2011

Я веду статистику по всему моему TCP-трафику в байтах. Каждый раз, когда я отправляю данные, я обновляю статистику, и каждый раз, когда я получаю данные, я обновляю статистику. Это с точностью до одного байта и требует всего несколько строк кода. И это не зависит от каких-либо конкретных компонентов TCP. Почему так сложно это сделать?

...