NMUDP怎么老是报Stream write error错误啊
这是我从联机帮助里面拷贝的一段代码
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, NMUDP, StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
Memo1: TMemo;
Memo2: TMemo;
Edit1: TEdit;
NMUDP1: TNMUDP;
procedure Button1Click(Sender: TObject);
procedure NMUDP1DataReceived(Sender: TComponent; NumberBytes: Integer;
FromIP: String; Port: Integer);
procedure NMUDP1DataSend(Sender: TObject);
procedure NMUDP1Status(Sender: TComponent; status: String);
procedure NMUDP1InvalidHost(var handled: Boolean);
procedure NMUDP1StreamInvalid(var handled: Boolean; Stream: TStream);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var
MyStream: TMemoryStream;
C: String;
begin
C := Edit1.Text;
NMUDP1.RemoteHost := '127.0.0.1';
NMUDP1.ReportLevel := Status_Basic;
NMUDP1.RemotePort := 6668;
MyStream := TMemoryStream.Create;
try
MyStream.Write(C[1], Length(C));
NMUDP1.SendStream(MyStream);
finally
MyStream.Free;
end;
end;
procedure TForm1.NMUDP1DataReceived(Sender: TComponent;
NumberBytes: Integer; FromIP: String; Port: Integer);
var
C: String;
MyStream: TMemoryStream;
begin
MyStream := TMemoryStream.Create;
try
//下面这句一执行就报上面的那个错误,怎么解决啊?
NMUDP1.ReadStream(MyStream);
SetLength(C, NumberBytes);
MyStream.Read(C[1], NumberBytes);
Memo1.Lines.Add(C+': received '+IntToStr(NumberBytes)+' bytes from '+FromIP+' on port '+IntToStr(Port));
finally
MyStream.Free;
end;
end;
end.