谢谢你的提示。 问题是这样的:在单步调试的过程中,发现可以正确传送,目标文件为689kb ,可继续跟踪下去,它的大小又变为o了,为什么? 发送端: strfile:=edit2.Text; ClientSocket1.Socket.SendStream(tfilestream.Create(strfile,fmopenread)); 接收端: procedure TRcvData.ServerSocket1ClientRead(Sender: TObject; Socket: TCustomWinSocket); var stream:tfilestream; nrecved:integer; begin stream:=tfilestream.Create('e:\minedb.mdb',fmCreate); try while true do begin nrecved:=socket.ReceiveBuf(buffer,sizeof(buffer)); if nrecved<=0 then break else stream.Write(buffer,nrecved); end; procedure TRcvData.ServerSocket1ClientRead(Sender: TObject; Socket: TCustomWinSocket); var stream:tfilestream; strln:string; nrecved:integer; begin stream:=tfilestream.Create('e:\minedb.mdb',fmCreate); try while true do begin nrecved:=socket.ReceiveBuf(buffer,sizeof(buffer)); if nrecved<=0 then break else stream.Write(buffer,nrecved); end; finally stream.Free; end; end; 大小又变为o了,为什么?
问题是这样的:在单步调试的过程中,发现可以正确传送,目标文件为689kb ,可继续跟踪下去,它的大小又变为o了,为什么?
发送端:
strfile:=edit2.Text;
ClientSocket1.Socket.SendStream(tfilestream.Create(strfile,fmopenread));
接收端:
procedure TRcvData.ServerSocket1ClientRead(Sender: TObject;
Socket: TCustomWinSocket);
var
stream:tfilestream;
nrecved:integer;
begin
stream:=tfilestream.Create('e:\minedb.mdb',fmCreate);
try
while true do
begin
nrecved:=socket.ReceiveBuf(buffer,sizeof(buffer));
if nrecved<=0 then break
else
stream.Write(buffer,nrecved);
end;
procedure TRcvData.ServerSocket1ClientRead(Sender: TObject;
Socket: TCustomWinSocket);
var
stream:tfilestream;
strln:string;
nrecved:integer;
begin
stream:=tfilestream.Create('e:\minedb.mdb',fmCreate);
try
while true do
begin
nrecved:=socket.ReceiveBuf(buffer,sizeof(buffer));
if nrecved<=0 then break
else
stream.Write(buffer,nrecved);
end;
finally
stream.Free;
end;
end;
大小又变为o了,为什么?