如何动态绑带indy中udpServer的IP和端口? ( 积分: 100 )

  • 主题发起人 主题发起人 fyfer
  • 开始时间 开始时间
F

fyfer

Unregistered / Unconfirmed
GUEST, unregistred user!
我本机有两个网卡,分别处在不同的网段,IP地址分别为192.168.0.12和192.168.1.12,在Delphi6下用INDY9控件组编程,现在我碰到了两个问题,不知道如何解决,还望各位大虾指点。
1.我放了两个udpServer控件上去,想在运行时指定他们绑带的IP和端口,但我下面的代码运行时报错,不知道该如何去写。
var
aNetIPA, aNetIPB : string;
aPort : integer;
begin
//给aNetIPA, aNetIPB, aPort分别赋值
udpServerA.Binding.IP := aNetIPA;
udpServerA.Binding.Port := aPort;
udpServerA.Binding.Bind;
udpServerA.Active := True;
udpServerB.Binding.IP := aNetIPB;
udpServerB.Binding.Port := aPort;
udpServerB.Binding.Bind;
udpServerB.Active := True;
end;
2.我想用udpClient控件向分别向两个网段发广播,无论是用Broadcast也好,或者host指定为255.255.255.255,我怎么控制它是发向网段0还是网段1呢。
 
我本机有两个网卡,分别处在不同的网段,IP地址分别为192.168.0.12和192.168.1.12,在Delphi6下用INDY9控件组编程,现在我碰到了两个问题,不知道如何解决,还望各位大虾指点。
1.我放了两个udpServer控件上去,想在运行时指定他们绑带的IP和端口,但我下面的代码运行时报错,不知道该如何去写。
var
aNetIPA, aNetIPB : string;
aPort : integer;
begin
//给aNetIPA, aNetIPB, aPort分别赋值
udpServerA.Binding.IP := aNetIPA;
udpServerA.Binding.Port := aPort;
udpServerA.Binding.Bind;
udpServerA.Active := True;
udpServerB.Binding.IP := aNetIPB;
udpServerB.Binding.Port := aPort;
udpServerB.Binding.Bind;
udpServerB.Active := True;
end;
2.我想用udpClient控件向分别向两个网段发广播,无论是用Broadcast也好,或者host指定为255.255.255.255,我怎么控制它是发向网段0还是网段1呢。
 
1:定义 Binding : TIdSocketHandle;
Binding := IdTCPServer1.Bindings.Add;
Binding.IP := aNetIPA;
Binding.Port := aPort;
Binding := IdTCPServer1.Bindings.Add;
Binding.IP := aNetIPB;
Binding.Port := aPort;
IdTCPServer1.active:=true;
 
2。双网卡的话,用两个udpclient吧,每个client帮定一个网卡
 
多谢flamboyant,第一问题已解决,一会儿就将50分奉上。
期待各位大虾的第二个问题的答案。
 
TO:flamboyant
哦,明白了,udpClient直接udpClient.Binding.IP := aNetIP就可以绑带的,呵呵。
我测试一下就结帖,多谢多谢!
 
接受答案了.
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
后退
顶部