读书人

求教一下大家缓冲区的处理,该怎么解决

发布时间: 2012-03-24 14:00:46 作者: rapoo

求教一下大家缓冲区的处理
我写了一个接收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);

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

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

读书人网 >.NET

热点推荐