【发布时间】:2021-07-04 12:35:53
【问题描述】:
我有非常简单的 TCP 客户端:
Socket socket = await Socket.connect(ipAddress, port);
socket.add(utf8.encode('Text 1'));
socket.listen((List<int> event) {
var x = utf8.decode(event)
//do something with this value...
});
socket.add(utf8.encode('Text 2'));
socket.listen((List<int> event) {
var x = utf8.decode(event)
//do something with this value...
});
.....
.....
.....
socket.close();
服务器等待来自客户端的新数据(“Text 1”,“Text 2”....),处理这些数据,然后返回答案。我怎样才能让飞镖听所有这些答案? Fist listen() 有效,但第二个抛出错误:未处理的异常:错误状态:流已被监听。
这是完整的错误信息:
[ERROR:flutter/lib/ui/ui_dart_state.cc(186)] Unhandled Exception: Bad state: Stream has already been listened to.
E/flutter ( 5303): #0 _StreamController._subscribe (dart:async/stream_controller.dart:635:7)
E/flutter ( 5303): #1 _ControllerStream._createSubscription (dart:async/stream_controller.dart:786:19)
E/flutter ( 5303): #2 _StreamImpl.listen (dart:async/stream_impl.dart:473:9)
E/flutter ( 5303): #3 _Socket.listen (dart:io-patch/socket_patch.dart:2004:31)
E/flutter ( 5303): #4 serverRequest.<anonymous closure> (package:vivadispecing_sofer/scripts.dart:602:14)
E/flutter ( 5303): #5 _rootRunUnary (dart:async/zone.dart:1362:47)
E/flutter ( 5303): #6 _CustomZone.runUnary (dart:async/zone.dart:1265:19)
E/flutter ( 5303): #7 _CustomZone.runUnaryGuarded (dart:async/zone.dart:1170:7)
E/flutter ( 5303): #8 _BufferingStreamSubscription._sendData (dart:async/stream_impl.dart:341:11)
E/flutter ( 5303): #9 _BufferingStreamSubscription._add (dart:async/stream_impl.dart:271:7)
E/flutter ( 5303): #10 _SyncStreamControllerDispatch._sendData (dart:async/stream_controller.dart:733:19)
E/flutter ( 5303): #11 _StreamController._add (dart:async/stream_controller.dart:607:7)
E/flutter ( 5303): #12 _StreamController.add (dart:async/stream_controller.dart:554:5)
E/flutter ( 5303): #13 _Socket._onData (dart:io-patch/socket_patch.dart:2144:41)
E/flutter ( 5303): #14 _rootRunUnary (dart:async/zone.dart:1370:13)
E/flutter ( 5303): #15 _CustomZone.runUnary (dart:async/zone.dart:1265:19)
E/flutter ( 5303): #16 _CustomZone.runUnaryGuarded (dart:async/zone.dart:1170:7)
E/flutter ( 5303): #17 _BufferingStreamSubscription._sendData (dart:async/stream_impl.dart:341:11)
E/flutter ( 5303): #18 _BufferingStreamSubscription._add (dart:async/stream_impl.dart:271:7)
E/flutter ( 5303): #19 _SyncStreamControllerDispatch._sendData (dart:async/stream_controller.dart:733:19)
E/flutter ( 5303): #20 _StreamController._add (dart:async/stream_controller.dart:607:7)
E/flutter ( 5303): #21 _StreamController.add (dart:async/stream_controller.dart:554:5)
E/flutter ( 5303): #22 new _RawSocket.<anonymous closure> (dart:io-patch/socket_patch.dart:1680:33)
E/flutter ( 5303): #23 _NativeSocket.issueReadEvent.issue (dart:io-patch/socket_patch.dart:1192:14)
E/flutter ( 5303): #24 _microtaskLoop (dart:async/schedule_microtask.dart:40:21)
E/flutter ( 5303): #25 _startMicrotaskLoop (dart:async/schedule_microtask.dart:49:5)
【问题讨论】:
标签: android flutter sockets dart tcp