TIdTCPServer中异常如何处理? 另外﹐TIdTCPServer的Bindings属性如何设置? 我上次传文件的项目已经取消了﹐但我还是想把程序编完﹐学点东西

解决方案 »

  1.   

    TIdTCPServer的异常多出现在收发数据的过程中,比如以下简单的接收过程:
    procedure TForm1.IdTCPServer1Execute(AThread: TIdPeerThread);
    begin
      with AThread.Connection do
      begin
        Memo1.Lines.Add(ReadLn);
      end;
    end;
    当客户端意外中断时就会发生异常,原因是ReadLn函数一直在等待一串字符,而连接的突然中断导致异常,使用下面的语句模型会在发生异常的时候关闭服务器线程:
      try
        with AThread.Connection do
        begin
          Memo1.Lines.Add(ReadLn);
        end;
      except
        on E:Exception do AThread.Stop;//<----关闭服务器线程
      end;
      

  2.   

    還有一個問題﹐TIdTCPServer的Bindings屬性怎么在程序里設置﹐而不是直接在IDE里設﹐我設了好几次﹐好像都不行﹐不知是什么原因?
      

  3.   

    with IdTCPServer1,Bindings do
      begin
        Clear;
        with Add do
        begin
          //Ip:='127.0.0.1';
          Port:=1981;
        end;
        Active:=True;
      end;
      

  4.   

    Binding : TIdSocketHandle;
      IdTCPServer1.Bindings.Clear;
      Binding := IdTCPServer1.Bindings.Add;
      Binding.Port := 5020;
      Binding.IP := '0.0.0.0';  // ip这样写