You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用ZeroMQ UDP协议时遇套接字类型不兼容错误的求助

在Flutter中使用ZeroMQ UDP协议传输控制信息时的套接字类型兼容问题

问题详情

尝试在Flutter应用中通过ZeroMQ的UDP协议与Python应用传输控制信息,绑定或连接UDP地址时触发以下错误:

ZeroMQException(156384764): The protocol is not compatible with the socket type

最初使用SocketType.sub和SocketType.pub套接字操作UDP地址,查阅ZeroMQ官方文档后得知,UDP协议需要使用Radio和Dish类型的套接字,但在dartzmq库中找不到对应的SocketType枚举值。

测试代码

import 'dart:io';

import 'package:dartzmq/dartzmq.dart';

void dishRadioDart() async {
  String udpAddress = "udp://127.0.0.1:5566";
  final context = ZContext();
  final dishSocket = context.createSocket(SocketType.pub);
  final radioSocket = context.createSocket(SocketType.sub);

  try {
    dishSocket.bind(udpAddress);
    print("dish socket binded to address : ${udpAddress}");
    radioSocket.connect(udpAddress);
    print("radio socket connect to address : ${udpAddress}");
    radioSocket.setOption(ZMQ_SUBSCRIBE, "");

    radioSocket.payloads.listen((event) {
      print("received message");
      print("received message is : ${event}");
    });
    while (true) {
      print("send message ");
      dishSocket.sendString("abdullah message ");
      sleep(const Duration(seconds: 1));
    }
  } catch (e) {
    print("error e : ${e}");
  }
}

已向dartzmq项目提交相关问题,寻求解决帮助。

内容的提问来源于stack exchange,提问作者Abdullah Abboud

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.08 14:10:19