C
ccoder
Unregistered / Unconfirmed
GUEST, unregistred user!
《Delphi高级网络编程》一书的附带源代码中有一个程序是用来演示NMUDP的用法的,
其中的一段代码有点问题:
1 procedure TForm1.NMUDP1DataReceived(Sender: TComponent;
2 NumberBytes: Integer; FromIP: String; Port: Integer);
3 var
4 TXT: PChar;
5 Count: Integer;
6 begin
7 StatusBar1.SimpleText:='Receiving data';
8 GetMem(txt,NUmberBytes+1);
9 ZeroMemory(TXT,NumberBytes+1);
10 NMUDP1.ReadBuffer(TXT^, Count);
11 Memo1.Lines.Add(TXT);
12 FreeMem(Txt);
13 StatusBar1.SimpleText:='data Received';
end;
假设我发送‘1234567890’10个字符
在第10行执行过后,Count的值是10,但TXT里面的值只有前4个才是正确的,后面的就变成了
乱码,我怎么也想不出问题出在哪里。有谁能帮忙解释一下?谢谢
其中的一段代码有点问题:
1 procedure TForm1.NMUDP1DataReceived(Sender: TComponent;
2 NumberBytes: Integer; FromIP: String; Port: Integer);
3 var
4 TXT: PChar;
5 Count: Integer;
6 begin
7 StatusBar1.SimpleText:='Receiving data';
8 GetMem(txt,NUmberBytes+1);
9 ZeroMemory(TXT,NumberBytes+1);
10 NMUDP1.ReadBuffer(TXT^, Count);
11 Memo1.Lines.Add(TXT);
12 FreeMem(Txt);
13 StatusBar1.SimpleText:='data Received';
end;
假设我发送‘1234567890’10个字符
在第10行执行过后,Count的值是10,但TXT里面的值只有前4个才是正确的,后面的就变成了
乱码,我怎么也想不出问题出在哪里。有谁能帮忙解释一下?谢谢