我使用文件流传输文件的时候似乎客户端没有回应,使用内存流传输服务端又报错,单步也跟踪不到哪一步的错误
帮我看一下代码上哪里有问题
if MidStr(VerInfo,5,4) = 'OKOK' then
      begin
        //StarSend(I);
        try
          Files := TFileStream.Create(FFileName,fmOpenRead or fmShareExclusive);
          Files.Position := 0;
//          FFileStream.Create ;  //使用内存流
//          FFileStream.LoadFromStream(Files);
//          FFileStream.Position := 0;
          session[i].CSocket.SendText('Tra_Info;'+inttostr(Files.Size));
          finally
            Files.Free;
            end;
        end
      else
      if MidStr(VerInfo,5,4) = 'Wait' then
      begin
        //SendFile;     发送文件
        try
          session[i].CSocket.SendStream(Files);//使用内存流发送就把Files改成FFileStream
          finally
            Files.Free;
            end;
      end;

解决方案 »

  1.   

    错误信息是什么呢,可以自己写日志,记录每一步,这样出错时也知道是哪一步,或者try except,在except中设断点
      

  2.   

    两边收发数据是正常的 我使用文件流传输文件 不知道是不是我方式不对 根本没有接收
    使用内存流的话 提示 Access violation at address 004038a5 in module 'Project1.exe' read of address 00000000
      

  3.   

    else 里的 Files 创建了吗
      

  4.   

    1、finally换成except来拦截错误
    2、根据大小分包传输