在ClientSocket的读取中;socket.ReceiveBuf(Data3,len);这个函数是如何运行的(100分)

  • 主题发起人 主题发起人 魏启明
  • 开始时间 开始时间

魏启明

Unregistered / Unconfirmed
GUEST, unregistred user!
procedure TFormJK.ClientSocket1Read(Sender: TObject;
Socket: TCustomWinSocket);
var
len,i:integer;
Data3:array[0..65535] of byte;
begin
{ TODO : 读取数据 }

len:=socket.receivelength;
len:=socket.ReceiveBuf(Data3,len);
if len>0 then……

问:这个函数传递给Data3的是地址还是值;
也就是,我在此之后如果干扰了缓冲区的数据,Data3中的数据是否也会受影响


另:如果,我在read过程中执行Socket.SendText();会不会破坏缓冲区数据
 
>>这个函数传递给Data3的是地址还是值
SendBuf(var Buf; Count: Integer)
ReceiveBuf(var Buf; Count: Integer)
前面有VAR,是地址,
系统把Data3中的数据拷贝到TCP/IP堆栈里,里面的数据应该没有丢失
TCP是双向的字节流,你接受的同时发送数据,对数据没有影响
 
后退
顶部