AU3 AutoIt的UDP发广播包的实现
转载本站文章请注明,转载自:昕星谷[http://oneyicn.gobaiyi.com]
本文链接: AU3 AutoIt的UDP发广播包的实现">http://oneyicn.gobaiyi.com/archives/2036/
AU3 AutoIt的UDP发广播包的实现,一直在为这个问题所困扰着,找了很多资料,主要是无所不知的百度跟google了。不过没有真正的答案,开始发现一个方法是
$IPAddress = "192.168.3.255"; 这是广播地址 ! UDPStartUp();开始 UDP 服务. $connexion = UDPOpen($IPAddress, 62007);连接到服务器进行会话,port为7赋给变量"$connexion" $res = UDPSend($connexion, $binary) MsgBox(0, "", $res);测试是否发送成功,失败为0 UDPCloseSocket($connexion) ;关闭一个 UDP (socket).r UDPShutdown() ;停止 UDP 服务.
这个广播只能针对本网(看子网了),还要去计算本网段的广播地址。
后来看帮助文档,原来还有个更方便的广播方法,那就是
$connexion = UDPOpen(“255.255.255.255″, 62007,1);连接到服务器进行会话,port为7赋给变量”$connexion”
再加个参数为1,IP改成255.255.255.255,这样就是真正的广播了,原来后面的参数都被默认掉了。
再看看帮助文档的说明吧。
函数参考
UDPOpen
——————————————————————————–
打开一个套接字(socket)连接到一个存在的服务器.
UDPOpen ( IP地址, 端口 [,标志] )
参数
IP地址 因特网协议地址(IpV4) ,如 “192.162.1.1″.
端口 用于连接创建的连接的端口.
标志 [可选参数] 0 (默认) – 不设置附加选项.
1 – 允许在地址 “255.255.255.255″ 进行广播.
返回值
成功: 返回一个数组: $array[1] 包含一个真实的套接字(socket), $array[2] 包含一个指定的IP地址, $array[3] 包含端口. 我们需要这个信息才能在后面调用 UDPSend(), 然后我们传递这个套接字 数据结构/数组.
失败: 返回 $array[0]=0 并设置 @error 的值.
@error: windows API WSAGetError 返回值(see MSDN).
注意/说明
这个函数使用于客户端连接到服务器进行会话.
近期评论