procedure TForm1.Button1Click(Sender: TObject);
var
 C:Array[0..254] of char;
 I,i_count:integer;
 ss:string; 
begin
  ss:=trim(edit1.text);
  I_Count:=Length(ss);
  if I_Count>=1 then
  begin
      strmove(@c,@ss[1],I_count);
      NMUDP1.RemoteHost := '127.0.0.1';
      NMUDP1.ReportLevel := Status_Basic;
      NMUDP1.LocalPort := 6667;
      NMUDP1.RemotePort := 6667;
      NMUDP1.SendBuffer(C,I_Count);
    end
  else
    begin
      ShowMessage('不能发送空消息!');
    end;end;

解决方案 »

  1.   

    procedure TForm1.NMUDP1DataReceived(Sender: TComponent;
      NumberBytes: Integer; FromIP: String; Port: Integer);
    var 
    C: array [0..254] of Char; 
    begin 
    fillchar(c,sizeof(c),0);
    if NumberBytes <=I_Count then 
      begin
        NMUDP1.ReadBuffer(C,NumberBytes);
        Memo1.Lines.Add('you have received'+C);
      end
    else
    begin
      Memo1.Lines.Add(IntToStr(I)+' bytes incoming, buffer too small');
    end; 
    end; 
      

  2.   

    问题解决了,这里先谢了,可是对字符串的操作,还不能理解比如:trim,fillchar
    如果能解释一下就更好了。
      

  3.   

    trim去掉字符串前后空格
    fillchar用初值填充变量