不知道大家又没有遇到过这样得问题,我在Form的OnCreate事件中编写下面代码动态设置TIdUDPserver 控件:UDPServer.DefaultPort:=iPort;
UDPServer.Active:=true;为什么有时候TIdUDPserver 控件无法接收数据包,即OnUDPRead事件没有任何响应,这是为什么?通过程序调试绝对排除了客户端发送原因。iPort是由另外一个TIdUDPserver使用完已经使用Free释放出来的端口,应该可以排除了iPort被占用的可能性吧?!
有时候把程序重启又可以,实在不解!

解决方案 »

  1.   

    最好不要这样处理吧——iPort是由另外一个TIdUDPserver使用完已经使用Free释放出来的端口给你不同的TIdUDPserver分配不同的端口好一点
      

  2.   

    我也奇怪这样 的 问题 
    Tdm.AudpUDPRead(Sender: TObject; AData: TStream;
      ABinding: TIdSocketHandle);
    这个事件一点反应也 没有,
    用TIdUDPserver的DEMO程序,却好 好的 ,
    然后不 知道 DEMO中放TIdAntiFreeze干吗?
      
      

  3.   

    TIdAntiFreeze是用来响应用户操作的。
    为什么要用多个idudpserver,一个不正好解决问题吗?
    一直监听iport端口不就行了。
      

  4.   

    关闭的时候IdUdpServer.bindings.clear;
      

  5.   

    我也遇到类似的问题,用CommView监视有数据,就是不触发OnRead?
    本地LoopBack测试却是好的.