Delphi XE-7和Indy的简单UDP示例/演示应用程序10.6.0.5169
我正在为Delphi XE-7和Indy 10.6.0.5169寻找一个简单的UDP示例/演示应用程序。Delphi XE-7和Indy的简单UDP示例/演示应用程序10.6.0.5169
我一直在寻找一段时间,我一直发现的一切都是为了不再编译的Indy或Delphi的旧版本。
我需要实现UDP客户端以处理WS-Discovery消息。
我试图用这里的上市申请:
http://delphi.about.com/library/weekly/code/src101105.zip
SendBuffer
在这里给我一个错误:
procedure TUDPSearchForm.SearchPartner;
var
x: Array[0..3] of Byte;
begin
RadioGroup1.Items.Clear;
RadioGroup1.ItemIndex := -1;
Height := 50+13;
Top := Top;
Left := left;
Show;
IdUDPClient1.Host := '255.255.255.255';
IdUDPClient1.Active := true;
IdUDPClient1.BroadcastEnabled := True;
x[0] := $00; // Search Receivers
x[1] := $00; // Search
x[2] := MessageCount div $100;
x[3] := MessageCount mod $100;
inc(MessageCount);
IdUDPClient1.Port := UDPDefaultPort;
IdUDPClient1.SendBuffer(x, 4);
IdUDPClient1.BroadcastEnabled := False;
end;
这个例子是为印9.印第安纳波利斯10,你必须使用TIdBytes
代替固定阵列,例如:
procedure TUDPSearchForm.SearchPartner;
var
x: TIdBytes;
begin
RadioGroup1.Items.Clear;
RadioGroup1.ItemIndex := -1;
Height := 50+13;
Top := Top;
Left := left;
Show;
IdUDPClient1.Host := '255.255.255.255';
IdUDPClient1.Active := true;
IdUDPClient1.BroadcastEnabled := True;
SetLength(x, 4);
x[0] := $00; // Search Receivers
x[1] := $00; // Search
x[2] := MessageCount div $100;
x[3] := MessageCount mod $100;
inc(MessageCount);
IdUDPClient1.Port := UDPDefaultPort;
IdUDPClient1.SendBuffer(x);
IdUDPClient1.BroadcastEnabled := False;
end;
您可以通过使用Broadcast()
方法而不是SendBuffer()
简化代码一点:
procedure TUDPSearchForm.SearchPartner;
var
x: TIdBytes;
begin
RadioGroup1.Items.Clear;
RadioGroup1.ItemIndex := -1;
Height := 50+13;
Top := Top;
Left := left;
Show;
SetLength(x, 4);
x[0] := $00; // Search Receivers
x[1] := $00; // Search
x[2] := MessageCount div $100;
x[3] := MessageCount mod $100;
inc(MessageCount);
IdUDPClient1.Broadcast(x, UDPDefaultPort);
end;
谢谢。我正忙着设置“UDPSearchForm.OnUDPRead:= UDPRead;”在TForm1.Activate。它需要一个idUDPServer.TIdUDPListnerThread。 – wjvandyke 2014-12-03 22:43:58
究竟是什么让你“挂断”? 'TIdUDPListenerThread'在'IdUDPServer'单元中声明,与'TUDPReadEvent'相同。确保该单元在你的'使用'条款中。 – 2014-12-03 23:22:36
有没有具体到XE7例子。如果你有一个特定的演示,但它不能编译,然后显示代码,某人(可能是我)会为你调整它,以便编译。 – 2014-12-03 20:18:17
我试图使用这里列出的应用程序:http://delphi.about.com/library/weekly/code/src101105.zip – wjvandyke 2014-12-03 20:42:02
我得到一个错误: – wjvandyke 2014-12-03 20:42:35