行各位高手帮忙 最好给出源码 我感觉网络传输的程序不太好写 动不动就出错 而且都是底层的流方面的太抽象 也不好调试有什么办法可以解决呢

解决方案 »

  1.   

    你是用UDP协议吧?该协议规定每次传输的数据最大就4K,
    用TCP/IP
      

  2.   

    我用的是tcp/ip 啊 是clietsocket控件做的啊
      

  3.   

    谁能帮我改改我的源程 
    procedure TForm1.Button1Click(Sender: TObject);var
       SendFile: TFileStream;
       p:pchar;
       size:integer;
    begin
     p:=nil;
         size:=sfilesizes('c:\123.txt');   //文件大小
         getmem(p,size);
         try       SendFile:= TFileStream.Create('c:\123.txt', fmOpenRead);
           SendFile.readbuffer(p^,size);
           clientsocket1.Socket.SendBuf(p^,size);
         finally
           freemem(p);
           sendfile.Free;
         end;
    end;
    procedure TForm1.ServerSocket1ClientRead(Sender: TObject;
      Socket: TCustomWinSocket);var
      receivefile:Tfilestream;
      q:pchar;
      length:integer;
      datafile:tfilestream;
    begin  q:=nil;
        
             length:=socket.receivelength;
             getmem(q,length);
             try
               receivefile:=TFileStream.Create('d:\123.txt', fmcreate);
               socket.ReceiveBuf(q^,length);
               receivefile.WriteBuffer(q^,length);
             finally
               freemem(q);
               receivefile.Free;
             end;
           end; End.
      

  4.   

    我用SOCKET传输大文件,还没传文件内容就出错了
    http://expert.csdn.net/Expert/topic/1256/1256304.xml?temp=.1358606
      

  5.   

    这很正常,我刚完成了一个文件传输的程序
    我在程序中也遇到过这样的问题,
    每次传过去文件(大于4k)我看属性
    都是大小:1.36k
    占用空间:4k后来我改为每次传输1k,结果就成功了
    速度到达:70K/秒其实文件传输的主要注意点是协议
    协议定好了什么都好说
      

  6.   

    casenet(case)那么你的意思就是 把 length 的大小设为1k吗