F
Final Code
Unregistered / Unconfirmed
GUEST, unregistred user!
编程中发现,IdUDPClient在数据接受方没有开机时,Send(或SendBuffer或Binding.SendTo)会停留很长时间,为什么?不是说UDP不管接受方是否存在吗?太郁闷了。请问如何解决,代码附下:
procedure TForm1.Button1Click(Sender: TObject);
const
TEXT = '123456790';
var
i: Integer;
szSendContent: string;
begin
// 初始化UDPClient
with IdUDPClient1 do
begin
Port := 2049;
Host := '192.168.1.215';
ReceiveTimeout := -2;
Active := True;
end;
// 组装要发送的数据
for i := 0 to 1024 do
szSendContent := szSendContent + TEXT;
while not chckbxTerminatel.Checked do
begin
Application.ProcessMessages();
IdUDPClient1.Send(szSendContent); // ????? 会在此句停留很长时间
end;
end;
注:请在Form中加入一个CheckBox,改名为chckbxTerminatel、加入一个Button、加入一个IdUDPClient。Indy版本:9.0.14,系统版本:Windows2000,Delphi版本:6.0(Update 2)
procedure TForm1.Button1Click(Sender: TObject);
const
TEXT = '123456790';
var
i: Integer;
szSendContent: string;
begin
// 初始化UDPClient
with IdUDPClient1 do
begin
Port := 2049;
Host := '192.168.1.215';
ReceiveTimeout := -2;
Active := True;
end;
// 组装要发送的数据
for i := 0 to 1024 do
szSendContent := szSendContent + TEXT;
while not chckbxTerminatel.Checked do
begin
Application.ProcessMessages();
IdUDPClient1.Send(szSendContent); // ????? 会在此句停留很长时间
end;
end;
注:请在Form中加入一个CheckBox,改名为chckbxTerminatel、加入一个Button、加入一个IdUDPClient。Indy版本:9.0.14,系统版本:Windows2000,Delphi版本:6.0(Update 2)