在线等。

解决方案 »

  1.   

    是这样的 ,如果没有客户端连接,关闭正常,有的话就不正常了,我在OnClose中关客户端或
    Active =false,都不行,异常有:Socket Error #10038 等我现在用原来的ServerSocket重做,没有任何问题.
      

  2.   

    客户端先
    idtcpclient1.disconnected;
    服务器端再
    IdTCPServer1.Active := false;
    IdTCPServer1.Bindings.Clear;
      

  3.   

    有不能够让客户端先退出呀,我试过Indy他自身带的程序好像也有问题
      

  4.   

    真要命了,可能不是版本的问题,我删掉9.0.0.14,换成d7自带的也没有问题了,不过有问题的是在windows 2000 adv,没有问题的是Windows xp!!!!!
      

  5.   

    d7自带的也有问题吧,只要客户端有连接上来,就关不掉服务端。我用的是xp
    to 2312(╰@oo恒星★) 
    怎么重新做呢,代码还是要哪些代码,因为要完成那些工作。
      

  6.   

    我这里在XP下正常啊,同样的程序在2000下关闭时出问题(当然是在有客户端连接的时候),在没有客户端连接时,关闭都没有问题的!对了linfeng ,Socket Error #10038 是不是那个线程超时错误??刚在indy Knowage base 查到,说这不是什么大问题,说只在stop on exception turned on时出错,但我遇到的那个超时错误,却在关闭了也会出错的,弹出了一个错误对话框!
    原文如下:
    Why do I get 10038 exceptions raised when I shut down my servers? 
    This exception is normal and will be handled by Indy. Resume program execution by hitting F9 and Indy will catch the exception. In addition, this will only happen in the Delphi / C++ Builder IDE (and only if you have stop on exception turned on) and not a stand alone executable. NOTE: Code has been changed so that this appears less often than before, but it still can occur and is normal . 
      

  7.   

    看来你的问题和我的不一样,我的是EIdTerminateThreadTimeout错误,在2000下出现,XP下不出现!
      

  8.   

    我没有用过IdTCPServer,所以无法帮你,但可以帮你解决错误信息的问题:
    procedure TForm1.FormCreate(Sender: TObject);
    begin
    Application.OnException := ExceptEvent;
    end;procedure TfrmAD_Main.ExceptEvent(Sender: TObject; E: Exception);
    begin
    end;这样就不会出现错误对话框了,不过你最好自己处理“E: Exception”
      

  9.   

    你的INDY版本是多少,我用的是9.0.0.1,没有问题呀,这里有下载,你可以看看里面的DEMO:
    http://www.indyproject.org/