用socket编写文件传输程序,协议tcp。
  不知用TServerSocket和TClientSocket,还是TIdTCPServer和TIdTCPClient或是其他组件?
如果用TServerSocket和TClientSocket组件,其协议怎么设置成tcp?

解决方案 »

  1.   

    用TIdTCPServer和TIdTCPClient吧,控制方便且性能出众.在Indy公司网站提供demo下载
      

  2.   

    如果用TServerSocket和TClientSocket组件,其协议怎么设置成tcp?这套组件本来就是TCP协议的建议用INDY的控件:
    发送端
    procedure TForm1.Button2Click(Sender: TObject);
    var
     buf:tfilestream;
    begin
     buf := TFileStream.Create(edit5.Text, fmOpenRead);//edit5.text文件名(含路径)
     IdTCPClient1.Host:=edit1.Text;//ip  string;
     IdTCPClient1.Port:=1053;
     IdTCPClient1.Connect();
     IdTCPClient1.WriteLn(ExtractFileName(edit5.Text));
     IdTcpClient1.WriteStream(buf,true,true); //发送文件
     IdTcpClient1.Disconnect;
     buf.Free;
    end;
    接收端
    procedure Tfm_main.IdTCPServer1Execute(AThread: TIdPeerThread);
    var
     buf: TFileStream;
     FileName:string;
     size:longint;
    begin
     FileName:=athread.Connection.ReadLn;
     buf := TFileStream.Create(FileName, fmCreate);
     AThread.Connection.ReadStream(buf, -1, true);
     buf.Free;
    end;
      

  3.   

    在d6 internet上还有TCPClient和TCPServer控件这和ServerSocket和ClientSocket有什么区别?
      

  4.   

    看偶的铁,为什么问这种问题的人都不看偶的铁呢?http://community.csdn.net/Expert/topic/3326/3326247.xml?temp=.2163813
      

  5.   

    用:TIdTCPServer和TIdTCPClient我的项目就是用的他,挺好的
      

  6.   

    这位仁兄能否联系下,我也在做类似的项目,因初次接触TIdTCPServer和TIdTCPClient问题比较多想咨询下!
      

  7.   

    我用的是indy 9.0 到这里下载:http://www.indyproject.org/download/Borland.html
    有问题可以给我发消息
      

  8.   

    老兄,如果换成底层的TSocket怎么来实现文件传输啊。
    我现在刚好遇到这个问题,希望通过底层传送文件,请指教。