读书人

关于把文件写入到流中传送的有关问题

发布时间: 2012-03-06 20:47:55 作者: rapoo

关于把文件写入到流中传送的问题
这里是发送文件

Delphi(Pascal) code
var  Buf:array[0..BufSize-1] of Char;  Sendsize:longint;begin  OpenDialog1.Execute;  if OpenDialog1.FileName='' then exit;      FS:=TFileStream.Create(OpenDialog1.FileName,fmOpenRead);  FS.Seek(0,soFromBeginning);{移动指针到流的起始位置}  if FS.Size<>0 then   begin    LeftSize:=FS.Size;     while True do    begin      if LeftSize=0 then       begin        Break;      end      else      begin        if LeftSize<BufSize then         begin          SendSize:=LeftSize;         end        else        begin          Sendsize:=BufSize;        end;        FS.ReadBuffer(Buf,SendSize);        ClientSocket1.Socket.SendBuf(Buf,SendSize);        LeftSize:=LeftSize-SendSize;        Sleep(10);      end;    end;  end;  FS.Free;end;


这里是接收文件
Delphi(Pascal) code
  ReceiveLen:=Socket.ReceiveLength; //这里居然等于0,是怎么回事  {接收文件}  SaveDialog1.Execute;  if SaveDialog1.FileName='' then exit;  FS:=TFileStream.Create(SaveDialog1.FileName,fmCreate);  FS.Seek(0,soFromBeginning);{移动指针到流的起始位置}  Socket.ReceiveBuf(Buf,bufsize);  FS.Write(Buf,ReceiveLen);  FS.free;


bufsize是一个常量,4096
接到的文件内容为空,是我代码哪里有什么错误?
欢迎指正

[解决办法]
把代码发给我看一下,或许能找到问题。发站内短信,然后用QQ
[解决办法]
说出来解决的方法,我也先知道

读书人网 >.NET

热点推荐