求教一下大家缓冲区的处理
时间:2011-11-02
来源:互联网
我写了一个接收clientsocket数据的程序,设了1K的char数组用于接收数据,但是对方发送的数据有时大有时小,小的数据比较好处理,一次接收完成。大的数据需要读几次,但是我不知道如何让char数组,接收数据的时侯能够存储在char数组的任何位置。
var
str:string;
i:integer;
Buf : array [0..1023] of char;
Len : Integer;
p:pchar;
begin
Len := TWSocket(Sender).Receive(@Buf, Sizeof(Buf) - 1);
var
str:string;
i:integer;
Buf : array [0..1023] of char;
Len : Integer;
p:pchar;
begin
Len := TWSocket(Sender).Receive(@Buf, Sizeof(Buf) - 1);
作者: chenquanfz 发布时间: 2011-11-02
比如读到数组的第10个字节之后,可以这样:
Len := TWSocket(Sender).Receive(@Buf[10], Sizeof(Buf) -10);
一般如果你用阻塞模式的话,发数数据可以先发长度,收到这个长度后开辟一块相应长度的内存,再接收。。。
Len := TWSocket(Sender).Receive(@Buf[10], Sizeof(Buf) -10);
一般如果你用阻塞模式的话,发数数据可以先发长度,收到这个长度后开辟一块相应长度的内存,再接收。。。
作者: wzwcn 发布时间: 2011-11-03
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28