[已解决]UDPOpen可以接收数据吗?
本帖最后由 zhouhaijin 于 2014-12-29 15:47 编辑我看有些软件可以一个端口连接 服务器也可以发数据给客户机,客户机也可以发数据给服务器
我服务器是互联网IP,客户机是另一个互联网下的局域网里的机器
这样的情况下服务器可以发数据到客户机吗?
服务端代码
UDPStartup()
$socket = UDPBind("0.0.0.0",8976)
While 1
$data = UDPRecv($socket,50)
If $data = "1" Then
MsgBox(0,"","0")
$send=UDPSend($socket,"ok")
EndIf
sleep(10)
WEnd
Func OnAutoItExit()
UDPCloseSocket($socket)
UDPShutdown()
EndFunc
客户端代码
UDPStartup()
$socket = UDPOpen("服务端IP", 8976)
$status = UDPSend($socket,"1")
While 1
$data = UDPRecv($socket,50)
If $data = "ok" Then
MsgBox(0,"ok","ok")
EndIf
WEnd
Func OnAutoItExit()
UDPCloseSocket($socket)
UDPShutdown()
EndFunc
帮助里
UDPBind的说明好像可以一样
返回一个数组: $array 包含一个真实的套接字(socket), $array 包含一个指定的IP地址, $array 包含端口. 我们需要这个信息才能在后面调用 UDPSend(), where we pass this socket structure/array(未知意思) .
他这里说明说可以用这个信息让UDPSend()用
[ 本帖最后由 zhouhaijin 于 2008-12-28 00:58 编辑 ] 服务器是互联网IP,客户机是另一个互联网下的局域网里的机器
这样的情况下服务器可以发数据到客户机吗? 暂时没有条件测试,理论上应该是可以的。 取决于服务端 端口是否向外网开放。 我想把UDPBind反过来用,就是服务端UDPBind收到客户端信息后再服务端发送信息给客户端.
我就是服务端发送信息到客户端作不了(客户端不能UDPBind,客户端是在另一个局域网里,客户端很多就不能端口映射)
页:
[1]