utp 0.3.0 copy "utp: ^0.3.0" to clipboard
utp: ^0.3.0 copied to clipboard

outdated

uTorrent Transport Protocol (BEP0029 specification) library implemented by pure Dart.

example/utp_example.dart

import 'dart:convert';
import 'dart:io';

import 'package:utp/src/utp_protocol_implement.dart';

void main() async {
  int startTime;
  var ss = await ServerUTPSocket.bind(InternetAddress.anyIPv4, 0);
  var port = ss.port;
  var receive = <int>[];
  var total = 1000;
  ss.listen((socket) {
    print(
        '${socket.remoteAddress.address}:${socket.remotePort}[${socket.connectionId}] connected');
    socket.listen((data) {
      receive.addAll(data);
    }, onDone: () async {
      var endTime = DateTime.now().microsecondsSinceEpoch;
      var result = utf8.decode(receive);
      var t = result.split('\n').where((element) => element.isNotEmpty).length;
      assert(t == total, 'receive data error');
      print(
          'Remote ${socket.remoteAddress.address}:${socket.remotePort}[${socket.connectionId}] closed');
      // print('Receive $t chinese , spend ${(endTime - startTime) / 1000} ms:');
      print('receive $t chinese text: ');
      print('$result');
      await ss.close();
      print('server closed');
    });
  });

  var pool = UTPSocketClient();
  var s1 = await pool.connect(InternetAddress.tryParse('127.0.0.1'), port);
  var chinese = '中文字符甲乙丙丁戊己庚辛';
  print('send ${(chinese.length * total * 2) / 1024} kb datas');
  for (var i = 0; i < total; i++) {
    s1.writeln(chinese);
  }
  startTime = DateTime.now().microsecondsSinceEpoch;
  await s1.close();
  await pool.close();
  print('client closed');
}
2
likes
0
points
3
downloads

Publisher

unverified uploader

Weekly Downloads

uTorrent Transport Protocol (BEP0029 specification) library implemented by pure Dart.

Repository (GitHub)
View/report issues

License

unknown (license)

More

Packages that depend on utp