我在两个程序中分别用TNMUDP作为服务器发送和作为客户端接收,服务器端代码为:
procedure TForm_Server.Button1Click(Sender: TObject);
var
  Buffer:array [0..127] of char;
  i,len:integer;
  edstr:string;
begin
  edstr:=Edit1.Text;
  len:=length(edstr);
  for i:=1 to len do
    begin
      buffer[i-1]:=char(edstr[i]);
    end;
  NMUDP1.SendBuffer(buffer,len);
end;客户端代码为:
procedure TForm_Client.NMUDP1DataReceived(Sender: TComponent;
  NumberBytes: Integer; FromIP: String; Port: Integer);
var
  i:integer;
  buffer:array [0..127] of char;
  str:string;
begin
  str:='';
  NmUDP1.ReadBuffer(buffer,NumberBytes);
  for i:=0 to NumberBytes-1 do
    begin
      str:=str+string(buffer[i]);
    end;
  Memo1.Lines.Add(str);
end;procedure TForm_Client.Button1Click(Sender: TObject);
var
  i:integer;
  buffer1:array [0..127] of char;
  len:integer;
  str:string;
begin  NMUDP1.ReportLevel := Status_Basic;
  str:='';
  len:=128;
  NmUDP1.ReadBuffer(buffer1,len);
  for i:=0 to len-1 do
    begin
      str:=str+string(buffer1[i]);
    end;
  if str='' then
  Memo1.Lines.Add('没有接收到数据')
  else
  Memo1.Lines.Add(str);
end;在服务器端点击Button1,客户端接收没有问题,但是如果我在客户端加一个功能按钮直接接收服务器
发送来的信息时,如果服务器没有发送,客户端点击Button1还是可以接收到上次发送的数据,
请教各位:是否是没有清空缓冲区,应该如何解决这个问题?
我的最终目的是要在客户端判断指定端口是否接收到了数据!