我在用NMUDP 组件 进行数据的传递时,遇到了一个 List Index out of bounds(0) 的错误! 请问这是什么类型的错误啊? 应该怎么改啊! 还有我改ServerSocket 和ClientSocket 时也是如此,不知什么原因。
解决方案 »
- 一个多线程的DEMO代码编写
- 有无能执行JavaScript函数的控件?
- 夢裡尋她千百度,原來還是竹藍打水一場空!!!!
- 如何编程使电脑死机,请给一段代码,谢谢!
- ORACLE的BLOB类型读取 最大只能是32K 的问题, cronuz(cronus) 请进 接分
- 急求网络方面的问题。
- 查询问题
- SOS!!SOS:what is the TurboPower AsyncProfessinal ?
- 用Query控件的INSERT INTO 方式如何实现事务控制?
- 关于Delphi数据库访问的问题
- 很简单,如何给combobox或DBcombobox加一个数据库的字段作为其下拉值?
- ***加载等待form,如何判断什么时候读完数据库***!!!!!!
用到了字符串列表这一类的吧?索引超出原有存在的。
unit Unit1;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ComCtrls, StdCtrls, NMUDP;type
TForm1 = class(TForm)
NMUDP1: TNMUDP;
Label1: TLabel;
Edit1: TEdit;
Label2: TLabel;
Edit2: TEdit;
Button1: TButton;
StatusBar1: TStatusBar;
procedure Button1Click(Sender: TObject);
procedure NMUDP1Status(Sender: TComponent; status: String);
procedure NMUDP1DataSend(Sender: TObject);
procedure NMUDP1DataReceived(Sender: TComponent; NumberBytes: Integer;
FromIP: String; Port: Integer);
procedure NMUDP1InvalidHost(var handled: Boolean);
procedure Edit1Change(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;implementation
uses unit2;
{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);
begin
Form2.Show;
end;procedure TForm1.NMUDP1Status(Sender: TComponent; status: String);
begin
Statusbar1.Panels[0].Text :='Status: '+status;
end;procedure TForm1.NMUDP1DataSend(Sender: TObject);
begin
Statusbar1.Panels[0].Text :='Status: Message Sent';
end;procedure TForm1.NMUDP1DataReceived(Sender: TComponent;
NumberBytes: Integer; FromIP: String; Port: Integer);
var
mStream:TMemoryStream;
strData:String;
begin
mStream:=TMemoryStream.Create ;
try
NMUDP1.ReadStream(mStream);
SetLength(strData,NumberBytes);
mStream.Read(strData[1],NumberBytes);
edit2.Text :=strData;
finally
mStream.Free ;
end;
end;procedure TForm1.NMUDP1InvalidHost(var handled: Boolean);
begin
MessageDlg('Remote Host: '+NMUDP1.RemoteHost +'is invalid',mtError,[mbOk],0);
end;procedure TForm1.Edit1Change(Sender: TObject);
var
mStream:TMemoryStream;
strData:String;
begin
NMUDP1.ReportLevel:=Status_Basic;
NMUDP1.RemoteHost :='127.0.0.1';
strData:=edit1.Text ;
mStream:=TMemoryStream.Create ;
try
mStream.Write(strData,Length(strData));
NMUDP1.SendStream (mStream);
finally
mStream.Free;
end;
end;end.