搜索插件、代码仓与 APP 分类

插件详情v5.0.3

udp

轻量、高效且易于使用的 Dart UDP 库。支持单播、广播、组播和回环通信。

AndroidiOSmacOSWindowsLinux
近 30 天下载
7730
喜欢数
76
Pub 分数
150

安装插件

flutter pub add udp

插件介绍

基于插件公开信息、社区数据与项目使用情况整理的选型参考。

一个轻量且高效的 Dart UDP 库,可在跨平台环境中实现无缝的单播、广播、组播和回环通信。专为低延迟网络需求设计,提供简单的 API 来发送和接收 UDP 数据包,开销极小。适用于实时应用,如游戏、物联网设备和本地网络发现。该库支持跨平台,兼容 Android、iOS、macOS、Windows 和 Linux,适用于多种部署场景。

适合场景

  • 实时游戏网络
  • 物联网设备通信
  • 本地网络发现
  • 实时音频/视频流
  • 点对点数据传输

主要特点

  • 支持单播、广播、组播和回环
  • 跨平台兼容性
  • 低延迟数据包传输
  • 简单直观的 API
  • 高效的内存使用

适合对象

  • 开发实时应用的开发者
  • 物联网和嵌入式系统
  • 网络协议实验
  • 需要快速本地通信的应用程序

使用建议

  • 无内置的可靠性或顺序
  • 需要谨慎处理数据包丢失
  • 不适用于保证送达
  • 有限的错误处理
  • 手动管理连接状态

原始 README

以下为关联源码仓库的 README 原文快照,最新内容请访问源码仓库。

Lightweight UDP library for Dart.

Usage

A simple usage example:

import 'package:udp/udp.dart';


main() async {
    // creates a UDP instance and binds it to the first available network
    // interface on port 65000.
    var sender = await UDP.bind(Endpoint.any(port: Port(65000)));
  
    // send a simple string to a broadcast endpoint on port 65001.
    var dataLength = await sender.send("Hello World!".codeUnits,
    Endpoint.broadcast(port: Port(65001)));
  
    stdout.write("$dataLength bytes sent.");
  
    // creates a new UDP instance and binds it to the local address and the port
    // 65002.
    var receiver = await UDP.bind(Endpoint.loopback(port: Port(65002)));
  
    // receiving\listening
    receiver.asStream(timeout: Duration(seconds: 20)).listen((datagram) {
      var str = String.fromCharCodes(datagram.data);
      stdout.write(str);
    });
  
    // close the UDP instances and their sockets.
    sender.close();
    receiver.close();
  
  
   // MULTICAST
    var multicastEndpoint =
        Endpoint.multicast(InternetAddress("239.1.2.3"), port: Port(54321));
  
    var receiver = await UDP.bind(multicastEndpoint);
  
    var sender = await UDP.bind(Endpoint.any());
  
    receiver.asStream().listen((datagram) {
      if (datagram != null) {
        var str = String.fromCharCodes(datagram?.data);
  
        stdout.write(str);
      }
    });
  
    await sender.send("Foo".codeUnits, multicastEndpoint);
  
    await Future.delayed(Duration(seconds:5));
  
    sender.close();
    receiver.close();
  
}

Features and bugs

Please file feature requests and bugs at the issue tracker.

所属分类

源码仓库

使用此插件的项目

暂无相关数据。