delphi怎么发广播包?(50分)

  • 主题发起人 主题发起人 coolingxyz
  • 开始时间 开始时间
C

coolingxyz

Unregistered / Unconfirmed
GUEST, unregistred user!
我是用的 TNMUDP 控件,设置remotehost 为255.255.255.255,但提示 :“Project wangguan.exe raised exception class UDPSockError with message 'Host Lookup Canceled',Process stopped.Use Step or Run to continue”;不知道怎么办了。请大家帮忙!
 
我只要在局域网里实现就可以了。

我的要求是这样的,局域网里有若干台具有ip地址的设备,当我的程序运行起来的时候,发一个信号(还不知道设备的ip地址),设备收到后把自己的状态码还会给我的程序,然后我这里就可以收到这个状态码,把设备当前的状态显示出来。
我想不出好的办法来。在vb里我用winsock控件,udp数据报格式可以发255.255.255.255目标ip地址的数据报,但在delphi里碰到问题了。想不出好的解决办法,请大家帮忙呀?
 
如你的局域网地址是192.168.0.XXX ,广播地址应是192.168.0.255。
 
用局域网IP和IPMask做一次
not (IpMask) or LocalIp
就可以得到广播地址。
自身IP比较好求,IPMask不太容易,我做了一个dll,用读注册表的方法得到了。不知道
是不是标准,但是我测试过的计算机好像都是正确的。
 
255.255.255.255是保留的,不可以用的,你设置别的试试!
 
你可以找一本TCP/IP的书看看,TCP/IP协议中规定了在何种情况下,何种IP的地址是广播地址!
这是协议中规定的,于DELPHI没有关系。比如:当子网掩码为:255.255.255.0时它的广播地址
为:192.168.0.255,当子网掩码为:255.255.255.192时,它的广播地址有多个,是对应不同网
段的,等等……。还用应该研究一下TCP/IP。
 
多人接受答案了。
 
后退
顶部