使用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
相关产品推荐
相关产品推荐

