如何在Dart中通过套接字发送文件

时间:2018-11-14 07:52:50

标签: sockets dart flutter

我正在尝试通过套接字发送二进制文件,例如image或pdf。 我尝试了以下操作:

   file.readAsBytesSync().forEach((f) {
     socket.write(f);
   });

   socket.write(file.readAsBytesSync());

但是我收到的是整数列表,而不是二进制文件。 JAVA中下面给出的代码可以正常工作,并且接收端口以正确的格式获取文件

DataOutputStream dos = new DataOutputStream(s.getOutputStream());
FileInputStream fis = new FileInputStream(file);
byte[] buffer = new byte[4096];

while (fis.read(buffer) > 0) {
    dos.write(buffer);
}

fis.close();
dos.close();

我正在尝试找出相当于上述Java代码的Dart。

谢谢。

1 个答案:

答案 0 :(得分:0)

正确的代码:

Socket s = await Socket.connect(host, port);
await s.addStream(file.openRead());
print("ok: data written");