关于idtcpserver和idtcpclient对stream的发送与接收问题


本文整理自网络,侵删。

 WriteStream()有四个参数,第一个参数为数据流,第二个参数为boolean型,true代表从流的开始位置开始传输,而false代表从流的当前位置传输,默认为true。第三个参数也是boolean型,true代表标出传输的流的大小,而false为否。第四个参数为流的字节数大小。 

而ReadStream()有三个参数,第一个为数据流,第二个为数据大小,-1代表全部。第三个参数true表示只有在客户端disconnect后才能接到数据,而false表示客户端不必断开就可以接收到数据。你的问题就在这。

1:
客户端:

try
begin
OpenWriteBuffer;
WriteStream(OutputStream);
CloseWriteBuffer;
finally
disconnect;
end;

服务端:
ReadStream(InputStream,-1,true);

2:
客户端:
OpenWriteBuffer;
WriteStream(OutputStream,true,true,outputstream.size);
CloseWriteBuffer;

服务端:
ReadStream(InputStream,athread.connection.readinteger,false);
其中athread.connection.readinteger存的是流的字节数大小。

相关阅读 >>

Delphi 利用idhttp进行多线程下载

Delphi httpclient async异步获取网页代码

Delphi 取得和设置当前系统的短日期格式

Delphi firemonkey的屏幕分辨率hdpi、mdpi、ldpi的差别

Delphi 获取指定目录下的所有文件名,包括子目录函数

Delphi tnethttpcleint提交json串

Delphi 把整个窗体保存为图片的方法

Delphi 检测服务器地址是否有效

Delphi 任务管理器 获取窗口标题 获取窗口图标

Delphi 10.3 断点全部失效

更多相关阅读请进入《Delphi》频道 >>



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...