用nmudp控件接收数据(字符串)时,字符串被"0"截断,请问高手如何解决?
我用一个NMUDP控件接受服务器端发送来的报文,报文格式如下: 144 3 5 1 2 4 6 0 0 1 3 8 9 9 4 3
都是数字,但是到"6"的时候字符就被截断了,并且NumberBytes显示只是收到了7个字节,我按ReadBuffer的方法接收还是如此,DELPHI 中的字符串是以"#0"来结束的,但是报文全接收过来以后再处理也可以,但是NMUDP控件压根就没有完全接受过来,在它那里就给我截断了,这可怎么办呀,UDP协议的控件大家还有更好的吗?请各位高手帮忙解决呀!
procedure TFmain.NMUDP1DataReceived(Sender: TComponent;
NumberBytes: Integer; FromIP: String; Port: Integer);
var
Mystream: TMemoryStream;
tmpstr: ansistring;
begin
Mystream:=TMemoryStream.Create;
try
nmudp1.ReadStream(Mystream);
Setlength(tmpstr,NumberBytes);
MyStream.Read(Tmpstr[1],NumberBytes);
Memo1.Lines.Add('IP地址为:'+fromip+
' 字节个数为:'+inttostr(NumberBytes)+
' 详细内容为:'+TmpStr);
finally
MyStream.Free;
end;
end;