gpt4 book ai didi

delphi - 如何获取socket.SendStream的进度?

转载 作者:行者123 更新时间:2023-12-03 15:51:09 25 4
gpt4 key购买 nike

我使用dephi7的客户端/服务器套接字组件通过tfilestream将文件从客户端发送到服务器。

我能够获取服务器端接收文件的进度,但在客户端,我如何获取文件发送的进度?

这是我发送文件的方式:

  fstream:=tfilestream.Create(opendialog1.FileName,fmOpenRead);
clientsocket1.Socket.SendStream(fstream);

感谢并感谢您的帮助。

最佳答案

看起来TClientSocket没有提供任何进度反馈。我看到两种选择:

  1. 在循环中使用 TStream.ReadTClientSocket.Socket.SendBuf,而不是 SendStream。从流中读取数据 block 然后发送。重复此操作,直到到达流的末尾。

  2. 编写一个 TStream 后代类来包装(或装饰)另一个流。它的 ReadWriteSeek 方法可以简单地转发到包装的流,但您也可以向包装器添加一些事件,这样您就可以每次套接字代码从流中读取数据 block 时都会收到通知 - SendStream 方法本质上与我在第一个替代方案中描述的相同。

关于delphi - 如何获取socket.SendStream的进度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2824326/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com