mikkeli 02a8ba9c18 fix: report a user-requested stop as stopped rather than failed
Stopping a test shuts down the control socket, so iperf_run_client() returns
-1 with "unable to send control message ... Broken pipe". That is the
expected consequence of the stop, not a fault, but the bridge read the
negative return as a failure — so pressing STOP left the UI showing
"Error (exit 1)" above a broken-pipe message.

The bridge now consults its own g_stop flag before classifying the outcome,
and the distinction travels up as Iperf3Result.stopped so the status line can
say "Stopped". A stop is reported with exit code 0: the run ended the way the
user asked it to.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-26 19:03:59 +09:00

iperf3-gui

A Flutter-based Android GUI wrapper for iperf3, the popular network performance measurement tool.

Features

  • Client-mode network throughput testing
  • Simple UI: enter server address, port, and press GO
  • Raw iperf3 output display
  • Bundled iperf3 v3.21 binaries for arm64-v8a and armeabi-v7a

Architecture

lib/
├── domain/
│   ├── models/          # TestConfiguration, Iperf3Result
│   └── services/        # Iperf3Service (Process runner)
├── ui/
│   └── features/
│       └── test_run/    # TestRunScreen, TestRunViewModel
├── main.dart            # App entry point
└── pubspec.yaml         # Dependencies: provider, path_provider

Building

Prerequisites:

  • Flutter 3.47+
  • Android SDK with platform android-36
  • JDK 17
flutter create . --org novoyuuparosk --project-name iperf3gui
flutter pub get
flutter analyze
flutter build apk --debug

iperf3 Binaries

Pre-compiled binaries are sourced from davidBar-On/android-iperf3 and bundled in assets/iperf3/ (arm64-v8a and armeabi-v7a for Android 28+).

License

MIT — bundled iperf3 v3.21 is BSD-3-Clause licensed.

S
Description
No description provided
Readme MIT 2 MiB
2026-08-26 13:44:11 +00:00
Languages
C 70.4%
Makefile 11.5%
Dart 7.8%
C++ 2.6%
Roff 2.5%
Other 5.2%