小编Ert*_*ıcı的帖子

Dart 套接字监听不会等到完成

我想在一个函数中执行这些操作:
1-连接套接字2-发送查询3-监听数据4-返回数据

但是当我尝试套接字时。即使我将await 放在listen 函数上,它也不会等待。它说这不是未来,而是一个 Stream 对象,但我对 Streams 不了解,所以我被困在这里。我怎样才能按照我说的去做呢?

static sendQuery({required String query,args, dimension}) async {
if(args != null)
  args.forEach((element) => query = query.replaceFirst("?", element));

String ip = shared.getData("remote_ip");
int port = shared.getData("remote_port");
String data =  "";
await Socket.connect(ip, port,timeout: Duration(seconds: 5)).then((soket) {
  soket.write(query);
  soket.listen((Uint8List buffer) async {
    String _buffer = String.fromCharCodes(buffer);
    data += _buffer;
  },
  onDone: () {});
});

print("Data has returned. Length of data: ${data.length}");
return data;}
Run Code Online (Sandbox Code Playgroud)

sockets future stream dart flutter

0
推荐指数
1
解决办法
2152
查看次数

标签 统计

dart ×1

flutter ×1

future ×1

sockets ×1

stream ×1