+ -
当前位置:首页 → 问答吧 → 求教一下大家缓冲区的处理

求教一下大家缓冲区的处理

时间: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);

作者: chenquanfz   发布时间: 2011-11-02

比如读到数组的第10个字节之后,可以这样:
Len := TWSocket(Sender).Receive(@Buf[10], Sizeof(Buf) -10);

一般如果你用阻塞模式的话,发数数据可以先发长度,收到这个长度后开辟一块相应长度的内存,再接收。。。

作者: wzwcn   发布时间: 2011-11-03