indy组件页里的TIdUdpClient可以发送数据给TIdUdpServer接收,但它如何接收TIdUdpServer发送来的数据呢,它没有类似receive或read事件,而只有一个status事件,听有人说用UDP断口侦听,该怎么做?

解决方案 »

  1.   

    udpclient 有一个 onudpread 事件。这里面写代码就行了。
      

  2.   

    TIdUdpClient只有一个onStatus事件啊,,,不象TIdUdpServer中有onudpread事件
      

  3.   

    TIdUdpClient 发送端
    TIdUdpServer 接受端+发送端
    与TIdTcpClient TIdTcpServer是有区别的你直接用TIdUdpServer 就可以了
      

  4.   

    打算接受发送都用TIdUdpServer 
    TIdUdpServer 用做发送端和TIdUdpClient 比起来有啥不同呢
      

  5.   

    procedure TUDPMainForm.UDPServerUDPRead(Sender: TObject; AData: TStream; ABinding: TIdSocketHandle);var
      DataStringStream: TStringStream;
      s: String;
      AD:Tstream,
      Msg:TSendMSg;
    begin
      New(msg);
      DataStringStream := TStringStream.Create('');  try
      UDPMemo.Lines.AddStrings(GetpreceptList);
      DataStringStream.CopyFrom(AData, AData.Size);  UDPMemo.Lines.Add(DataStringStream.DataString + '   IP£º' + ABinding.PeerIP + '   port£º  ' + IntToStr(ABinding.PeerPort));
      s := 'ÒÑÊÕµ½: ' + UDPServer.LocalName  +'·¢µÄ: '+ DataStringStream.DataString;
      ABinding.SendTo(ABinding.PeerIP, ABinding.PeerPort, s[1], Length(s));
      finally
      DataStringStream.Free;
      end;