delphi7里的UDPServer组件的IdUDPServer1.ReceiveBuffer里边到底是要填写什么?在客户端用 form1.IdUDPClient1.Send(edit1.Text);
发送字符串数据后  服务器端的IdUDPServer1是否用ReceiveBuffer方法接收数据 接收的代码是什么
ReceiveBuffer的形式是:
Result := ReceiveBuffer(ABuffer, ABufferSize, VoidIP, VoidPort, AMSec);但是里边的ABuffer, ABufferSize, VoidIP, VoidPort, AMSec究竟该填写什么  是不是定义的 怎么定义  拜托了实在搞不定!!!!

解决方案 »

  1.   

    indy是阻塞式的,所以应该按照发送端的格式来接收
    ReceiveBuffe的参数:
    var ABufferBuffer where received data is stored.(存储接受数据的数据报)const ABufferSize: IntegerNumber of bytes to read from the remote connection.(从远端连接读取的Buffer的大小(字节数))const AMSec: Integer = IdTimeoutDefaultMilliseconds to wait for a readable connection. The default value is IdTimeoutDefault.( 等待可读连接的时间(毫秒)。默认值为IdTimeoutDefault的值 )var VPeerIP: stringIP address for the remote connection.(远端连接的IP)var VPeerPort: integerPort number for the remote connection(远端连接的端口号)
      

  2.   

    你可以看一下dephi自带的例子里是怎么写的,在Dephi安装目录下的Demos\indy下有
    如果找不到可以到官方主页上下载:
    http://www.indyproject.org/
      

  3.   

    http://community.csdn.net/Expert/topic/4760/4760158.xml?temp=.534054unit Unit1;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls, Buttons, DB, ADODB, ComCtrls, RxRichEd, IdUDPClient,
      IdBaseComponent, IdComponent, IdUDPBase, IdUDPServer, IdSocketHandle;type
      TForm1 = class(TForm)
        IdUDPServer1: TIdUDPServer;
        IdUDPClient1: TIdUDPClient;
        Button1: TButton;
        Edit1: TEdit;
        Button2: TButton;
        procedure Button2Click(Sender: TObject);
        procedure Button1Click(Sender: TObject);
        procedure IdUDPServer1UDPRead(Sender: TObject; AData: TStream;
          ABinding: TIdSocketHandle);
      private
        { Private declarations }
      public
        { Public declarations }
      end;var
      Form1: TForm1;implementation{$R *.dfm}procedure TForm1.Button2Click(Sender: TObject);
    begin
      IdUDPServer1.DefaultPort := 1234;
      IdUDPServer1.Active := True;
      IdUdpClient1.Port := 1234;
      IdUdpClient1.Active := True;
    end;procedure TForm1.Button1Click(Sender: TObject);
    begin
      IdUdpClient1.Send(Edit1.Text);
    end;procedure TForm1.IdUDPServer1UDPRead(Sender: TObject; AData: TStream;
      ABinding: TIdSocketHandle);
    var
      S: TStringStream;
    begin
      S := TStringStream.Create('');
      try
        S.CopyFrom(AData, AData.Size);
        ShowMessage(S.DataString);
      finally
        S.Free;
      end;
    end;end.